string - 如何使用 C++98 将字符串分配给枚举?
问题描述
我已经声明了一个枚举和一个字符串
string SS;
enum CS {AA, BB, CC, DD};
我想创建一个名为 CN 类型为 CS 的变量并将 SS 分配给枚举 CS。
我在网上查了一下,大多数解决方案都是针对 C++11 及更高版本的。我尝试使用地图,但它不起作用。
map<string, enum> CN;
CN["AA"]=0;
CN["BB"]=1;
CN["CC"]=2;
CN["DD"]=3;
谁能给我一些建议?如何将 CS 创建为类型枚举 CS?我会很感激的!
解决方案
只要在函数范围内初始化值,您对 map 的使用几乎是正确的。
即这没关系
std::map<std::string, CS> CN;
int main() {
CN["AA"]=AA;
CN["BB"]=BB;
CN["CC"]=CC;
CN["DD"]=DD;
// use CN
}
然而这不是
std::map<std::string, CS> CN;
CN["AA"]=AA; // can't have expressions at namespace scope
CN["BB"]=BB;
CN["CC"]=CC;
CN["DD"]=DD;
int main() {
// try to use CN
}
推荐阅读
- reactjs - When Table ellipsis attr is assigned `true` will show black text box. How can I change styled for textbox background color?
- react-native-firebase - 如何禁用后台状态通知?
- docker - 执行到 docker 重启容器
- c# - 如何使用字符串动态构建 Lambda 表达式
- flutter - 初始化时只能访问静态成员
- c# - 无法使用 DocuSign 管理 API [docusignapi] 更新用户个人资料
- php - 在 Laravel 6+ 中的 insert() 函数之后检索批量插入的 id
- sql - Hive SQL:如何将单个字段拆分为具有定义长度的多个列?
- c# - 如何找到仅在滚动后可见的元素?
- javascript - 使用 Stomp Client 订阅主题,但我没有收到任何通知 无法使用 React Native 并使用 Angular