[C++]random_shuffle()でVectorをシャッフルしてランダムに並び替えるには?

C++

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

random_shuffle()を使ってVectorの要素をシャッフルしてランダムに並び替える方法を紹介します。

スポンサーリンク

方法

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

random_shuffle()を使ってVectorの要素をシャッフルしてランダムに並び替えるには、2つの引数を使います。

まず、algorithmをインクルードします。

#include <algorithm>

次に、random_shuffle()を呼び出します。

そして、random_shuffle()の第1引数にVectorのイテレータの先頭、第2引数にVectorのイテレータの末尾を指定します。

//myVec=対象のVector
random_shuffle(myVec.begin(), myVec.end());

上記のrandom_shuffle()は、Vectorの要素をシャッフルしてランダムに並び替えます。

スポンサーリンク

使用例

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

int main(void){
    
    vector<string> nums = { "one", "two", "three", "four", "five"};
    
    random_shuffle(nums.begin(), nums.end());
    
    for(string item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
five
four
two
three
one

コメント

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