C++11のランダムシャッフルの仕様を見ると、3つの関数があります。私の質問は、の典型的な用途と利点は何ですか:
template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );
に比べ:
template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last );
つまり、URNG (一様分布) が何であれ、結果は (統計的な観点から) 同じになるようです。私が見る唯一のポイントは、それstd::shuffle
が広告セーフであるのに対し、このオーバーロードはそうでstd::random_shuffle
はないということです。それを確認していただけますか?
編集: URNG は統一されたディストリビューションであるべきだと思っていましたが、コンパイルされていないようです。それで、誰かがの使用の小さな例を提供できますstd::shuffle
か?