2

可能重复:
生成随机枚举

我正在寻找从 C++ 中的枚举中选择元素的最佳方法。一开始,我感谢使用一个开关,但是,我有一些大的枚举并且效率不高,所以,我尝试使用一个 for each 来做到这一点。

在枚举中选择一个水果元素:

枚举 FruitType
{
    k苹果,
    橘子,
    瓜
};

并尝试这个功能:

/**
 * R3turn 一个随机水果
 */
FruitType giveMekRandomFruit()
{
    randNumber = rand % __TOTALFRUITS // 枚举总数 = 3 个元素

    for (int& i: FruitType)
    {
           如果 (randNumber = i)
           {
           CCLog("随机选择的水果:" + i);
           返回我;// 返回选中的数字

            }
    }
}

显然不起作用,我对语法或概念有疑问,有什么想法吗???

谢谢你的时间。

4

1 回答 1

5

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

于 2012-05-12T07:55:46.307 回答