[C++]配列の要素をランダムに取得するには?

C++

どうも、ちょげ(@chogetarou)です。

配列(array)の要素をランダムに取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(array)の要素をランダムに取得するには、rand()を使います。

まず、配列名と[]を記述します。

そして、[]内に、rand()を配列の要素数で割った余りをを指定します。

//myArray=対象の配列, T=配列の要素の型
int length = sizeof(myArray) / sizeof(T); //配列の要素数を取得
T result = myArray[rand() % length] //配列の要素をランダムに取得

上記の配列名[]は、配列の要素をランダムに取得します。

スポンサーリンク

使用例

#include <iostream>
#include <ctime>
using namespace std;

int main(void){
    
    int nums[6] = { 11, 2, 8, 20, 7, 4 };
    
    srand(time(NULL)); //シードの生成
    
    int length = sizeof(nums) / sizeof(int);
    for (int i = 0; i < 5; i++) {
        cout << nums[rand() % length] << endl;
    }
    
    return 0;
}
出力:
4
4
11
2
7

コメント

タイトルとURLをコピーしました