如何从C++中枚举枚举元素

如何从C++中枚举枚举元素,c++,enums,random-sample,C++,Enums,Random Sample,可能重复: 我正在寻找从C++中枚举元素的最佳方法。开始时,我使用一个开关,但是,我有一些大的枚举,效率不高,所以,我尝试使用一个for-each来完成 要在枚举中选择水果元素,请执行以下操作: enum FruitType { kApple, kOrange, kMelon }; 然后尝试此功能: /** * R3turn a random fruit */ FruitType giveMekRandomFruit() { randNumber = ran

可能重复:

我正在寻找从C++中枚举元素的最佳方法。开始时,我使用一个开关,但是,我有一些大的枚举,效率不高,所以,我尝试使用一个for-each来完成

要在枚举中选择水果元素,请执行以下操作:

enum FruitType { kApple, kOrange, kMelon }; 然后尝试此功能:

/** * R3turn a random fruit */ FruitType giveMekRandomFruit() { randNumber = rand % __TOTALFRUITS // Enum total = 3 elements for (int& i: FruitType) { if (randNumber = i) { CCLog("Random Fruit selected:" + i); return i; // return the number selected } } } 显然不行,我对联会或概念有问题,知道吗


谢谢您的时间。

如果枚举值是连续的,只需在适当的范围内取一个随机整数并强制转换到枚举即可。否则,使用随机整数创建枚举值和索引数组。

contrante=continuous?非常简单,我的代码可以很好地使用它。非常感谢,我需要更多的咖啡morning@alex:谢谢,更正