如何通过索引访问枚举的每个值?按索引获取枚举值
例如,
enum food{PIZZA, BURGER, HOTDOG};
大家都知道,第一个元素的索引从0开始,除非初始化。
如何从索引获取枚举的字符串值?
我怎样才能打印PIZZA?
cout << food(0);
我知道这是不正确的,但请告知我的感谢。
如何通过索引访问枚举的每个值?按索引获取枚举值
例如,
enum food{PIZZA, BURGER, HOTDOG};
大家都知道,第一个元素的索引从0开始,除非初始化。
如何从索引获取枚举的字符串值?
我怎样才能打印PIZZA?
cout << food(0);
我知道这是不正确的,但请告知我的感谢。
在C++中无法获得enum
的字符串表示形式。
你必须将它们存储在其他地方。
例
enum food{PIZZA, BURGER, HOTDOG}
char* FoodToString(food foodid)
{
char* foodStrings[3] = {"PIZZA","BURGER","HOTDOG"};
return foodstrings[foodid];
}
有没有这样做,因为没有必要做的方式。一般来说枚举是用来代替我们使用例如积分值: -
int func()
{
//...
if (something)
return 0;
return 1;
}
可以用
enum Status { SUCCESS, FAILURE };
Status func()
{
//...
if (something)
return SUCCESS;
return FAILURE;
}
被替换为更好的可读性。
如果你想通过提供索引来获得枚举值,那么你可以在某种映射中存储具有枚举值的索引(对于unordered_map)。
枚举没有索引。他们有一组他们的实例可以拥有的值。 – juanchopanza 2014-11-01 09:56:46