如何通過索引訪問枚舉的每個值?按索引獲取枚舉值
例如,
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