c++ - 如何从 C++ 中的枚举返回随机元素

标签 c++ enums random

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/

相关文章:

c++ - clang-format:如何防止下一行的所有函数参数?

java - 访问实现接口(interface)的通用枚举的父方法

c# - C# enum ToString() 是否保证返回枚举名称?

java - 枚举<?扩展界面>

random - 如何在 Metal 着色器中获取随机数?

c++ - 为什么内联用户提供的构造函数 odr 使用基类构造函数?

C++ 在 if 语句设置条件为真和 or-ing 循环条件之间的行为差​​异

c++ - 错误: expected unqualified-id before ‘class’

java - 简单的二维随机游走

python - 创建 100 个随机整数的列表,返回最大值