C++ 通过其索引获取枚举值

C++ 通过其索引获取枚举值,c++,enums,C++,Enums,如何通过索引访问枚举的每个值 比如说, enum food{PIZZA, BURGER, HOTDOG}; 众所周知,除非初始化,否则第一个元素的索引从0开始 如何从索引中获取枚举的字符串值 我怎样才能让它打印比萨饼 cout << food(0); cOut不能获得C++中的 EnUM 的字符串表示。 你必须把它们存放在别的地方 示例 enum food{PIZZA, BURGER, HOTDOG} char* FoodToString(food foodid) {

如何通过索引访问枚举的每个值

比如说,

enum food{PIZZA, BURGER, HOTDOG};
众所周知,除非初始化,否则第一个元素的索引从0开始

如何从索引中获取枚举的字符串值

我怎样才能让它打印比萨饼

cout << food(0);

<代码> cOut不能获得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;
}
为了更好的可读性


如果您想通过提供索引来获取枚举值,那么可以将带有枚举值的索引存储在某种映射中(对于无序映射)。

枚举没有索引。它们有一组实例可以拥有的值。