我想使用random_shuffle()
中的<algorithm>
函数,但是当我查看它时,结果是它使用了rand()
。这是否适合洗牌?我的印象是rand()
不是随机值的非常好的来源,最好使用来自<random>
的Mersenne Twister之类的东西。
答案 0 :(得分:3)
首选方法是使用std::shuffle
:
std::shuffle(begin(), end(), std::mt19937());
std::random_shuffle()
随机性来源未定义。 Visual C ++团队对此进行了评论,称他们将使用rand()
而不是更好的东西来保持它,以便它保持向后兼容。