【问题标题】:How to assign string to enum using C++98?如何使用 C++98 将字符串分配给枚举?
【发布时间】:2021-09-10 21:58:35
【问题描述】:

我已经声明了一个枚举和一个字符串

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? 我会很感激的!

【问题讨论】:

  • enum CS {"AA", "BB", "CC", "DD"}; is not valid C++ 你是说enum CS {AA, BB, CC, DD};吗?
  • 是的,感谢您的指正!

标签: string enums c++98


【解决方案1】:

只要在函数范围内初始化值,您对 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
}

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    相关资源
    最近更新 更多