2

重複の可能性:
ランダムな列挙型の生成

C++の列挙型から要素を選択するための最良の方法を探しています。最初はスイッチを使用していただきありがとうございますが、大きな列挙型がいくつかあり、効率的ではないため、それぞれにforを使用して実行しようとしています。

列挙型のフルーツ要素を選択するには:

列挙型FruitType
{{
    kApple、
    kOrange、
    kMelon
};

そして、この関数を試してください:

/ **
 *R3はランダムなフルーツを回します
 * /
FruitType giveMekRandomFruit()
{{
    randNumber = rand%__TOTALFRUITS//列挙型合計=3要素

    for(int&i:FruitType)
    {{
           if(randNumber = i)
           {{
           CCLog( "ランダムフルーツが選択されました:" + i);
           iを返します。//選択した番号を返します

            }
    }
}

明らかに動作しません、私は構文または概念、任意のアイデアに問題がありますか?

御時間ありがとうございます。

4

1 に答える 1

5

列挙型の値が連続している場合は、適切な範囲のランダムな整数を取得して、列挙型にキャストします。それ以外の場合は、列挙値の配列を作成し、ランダムな整数でインデックスを作成します。

于 2012-05-12T07:55:46.307 に答える