std::experimental:: shuffle
From cppreference.net
<
cpp
|
experimental
|
定義先ヘッダ
<experimental/algorithm>
|
||
|
template
<
class
RandomIt
>
void shuffle ( RandomIt first, RandomIt last ) ; |
(library fundamentals TS v2) | |
指定された範囲
[
first
,
last
)
内の要素を並べ替え、各要素の可能な順列が等しい確率で現れるようにします。乱数生成器として
スレッド毎乱数エンジン
を使用します。
目次 |
パラメータ
| first, last | - | ランダムにシャッフルする要素の範囲 |
-
RandomIt
は
ValueSwappable
および
LegacyRandomAccessIterator
の要件を満たさなければならない。
|
||
戻り値
(なし)
計算量
first と last の間の距離に対して線形。
例
このコードを実行
#include <experimental/algorithm> #include <iostream> #include <string> int main() { std::string sample{"ABCDEF"}; for (int i = 0; i != 4; ++i) { std::experimental::shuffle(sample.begin(), sample.end()); std::cout << sample << '\n'; } }
出力例:
DACBFE CDFBAE BDCAFE BAFCED
関連項目
|
(until C++17)
(C++11)
|
範囲内の要素をランダムに並べ替える
(関数テンプレート) |