如何使用 C++98 将字符串分配给枚举?
How to assign string to enum using 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
}
我已经声明了一个枚举和一个字符串
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
}