如何在c ++中从枚举中返回一个随机元素

vgo*_*anz 2 c++ enums random-sample

可能重复:
生成随机枚举

我正在寻找从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或概念的问题,任何想法???

谢谢你的时间.

ste*_*anv 5

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