enum 是否包含某个字符串
时间: 2023-09-20 13:06:16 浏览: 210
枚举类型 enum 可以看作是一组命名的整数常量,它们在代码中被用于表示不同的选项或状态。因此,枚举类型的成员名都是字符串。
如果你想判断一个字符串是否是枚举类型的成员名,可以使用以下方法:
1. 遍历枚举类型的所有成员,将成员名与目标字符串逐一比较。这种方法比较直观,但需要手动编写遍历代码,比较繁琐。
2. 将枚举类型的所有成员名转为一个字符串列表,然后使用 std::find 等算法在列表中查找目标字符串。这种方法比较简单,但需要额外的字符串列表,占用一定内存。
下面是第二种方法的示例代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
enum Color {
RED,
GREEN,
BLUE
};
int main() {
std::string target = "GREEN";
// 将所有枚举成员名转为字符串列表
const std::string colorNames[] = {"RED", "GREEN", "BLUE"};
// 在字符串列表中查找目标字符串
auto it = std::find(std::begin(colorNames), std::end(colorNames), target);
if (it != std::end(colorNames)) {
std::cout << "Found: " << target << std::endl;
} else {
std::cout << "Not found: " << target << std::endl;
}
return 0;
}
```
输出:
```
Found: GREEN
```
阅读全文