string转enum
时间: 2023-08-30 19:09:16 浏览: 47
在 C++ 中,可以通过以下步骤将字符串转换为枚举类型:
1. 定义一个枚举类型,如下所示:
```c++
enum class MyEnum {
ENUM_VALUE_1,
ENUM_VALUE_2,
ENUM_VALUE_3
};
```
2. 创建一个函数,该函数接受一个字符串参数,并返回枚举类型。在函数内部,使用 if 或 switch 语句将字符串映射到枚举值,如下所示:
```c++
MyEnum stringToEnum(const std::string& str) {
if (str == "ENUM_VALUE_1") {
return MyEnum::ENUM_VALUE_1;
} else if (str == "ENUM_VALUE_2") {
return MyEnum::ENUM_VALUE_2;
} else if (str == "ENUM_VALUE_3") {
return MyEnum::ENUM_VALUE_3;
} else {
throw std::invalid_argument("Invalid enum string");
}
}
```
3. 调用该函数,将字符串转换为枚举类型,如下所示:
```c++
std::string str = "ENUM_VALUE_2";
MyEnum myEnum = stringToEnum(str);
```
注意:如果传入的字符串无法映射到枚举值,则函数将抛出一个 std::invalid_argument 异常。