可能重复:
generating random enums
我正在寻找在c ++中从枚举中选择元素的最佳方法。一开始,我感谢使用一个开关,但是,我有一些大的枚举并且效率不高,所以,我正在尝试使用每个人来做它。
在枚举中选择水果元素:
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 } } }
显然不工作,我有一个关于syntaxis或概念的问题,任何想法???
感谢您的时间。
答案 0 :(得分:5)
如果枚举值是连续的,只需在适当的范围内取一个随机整数并转换为枚举。否则,使用随机整数创建一个枚举值和索引数组。