如何通过索引访问枚举的每个值?
例如,
enum food{PIZZA, BURGER, HOTDOG};
众所周知,除非初始化,否则第一个元素的索引从0开始。
如何从索引中获取枚举的字符串值?
如何才能打印PIZZA?
cout << food(0);
我知道这不对,但请告诉我谢谢。
答案 0 :(得分:0)
您无法在c ++中获得enum
的字符串表示形式。
你必须将它们存放在其他地方。
示例强>
enum food{PIZZA, BURGER, HOTDOG}
char* FoodToString(food foodid)
{
char* foodStrings[3] = {"PIZZA","BURGER","HOTDOG"};
return foodstrings[foodid];
}
答案 1 :(得分:0)
没有办法这样做,因为没有必要这样做。通常,枚举用于替换我们使用的整数值,例如: -
int func ()
{
//...
if (something )
return 0;
return 1;
}
可以替换为
enum Status { SUCCESS, FAILURE };
Status func ()
{
//...
if (something )
return SUCCESS;
return FAILURE;
}
为了更好的可读性。
如果你想通过提供索引获得枚举值,那么你可以在某种地图中存储带有枚举值的索引(对于unordered_map)。