どうも、ちょげ(@chogetarou)です。
shuffle()を使ってVectorの要素をシャッフルしてランダムに並び替える方法を紹介します。
方法

shuffle()を使ってVectorの要素をシャッフルしてランダムに並び替えるには、3つの引数を使います。
まず、randomをインクルードします。
#include <random>
次に、shuffle()を呼び出します。
shuffle()の第1引数にVectorのイテレータの先頭、第2引数にVectorのイテレータの末尾を指定します。
そして、shuffle()の第3引数にstd::default_random_engine()を指定します。
//myVec=対象のVector
shuffle(myVec.begin(), myVec.end(), default_random_engine());
上記のshuffle()は、Vectorの要素をシャッフルしてランダムに並び替えます。
使用例
#include <iostream>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
int main(void){
vector<string> nums = { "one", "two", "three", "four", "five"};
//std::default_random_engine()の引数にシードを設定
shuffle(nums.begin(), nums.end(), default_random_engine(time(NULL)));
for(string item: nums) {
cout << item << endl;
}
return 0;
}
出力:
one
three
five
two
four
コメント