Possible Duplicate:
generating random enums
我正在寻找从 C++ 枚举中选择元素的最佳方法。一开始,我感谢使用一个开关,但是,我有一些大的枚举并且效率不高,所以,我尝试对每个使用 a 来做到这一点。
要在枚举中选择水果元素:
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 } } }
显然不起作用,我对语法或概念有疑问,有什么想法吗???
感谢您的宝贵时间。
最佳答案
如果枚举值是连续的,只需取适当范围内的随机整数并转换为枚举即可。否则,创建一个枚举值数组并使用随机整数进行索引。
关于c++ - 如何从 C++ 中的枚举返回随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561968/