random_shuffle是否可以使用rand()?

时间:2014-03-13 20:17:50

标签: c++ stl

我想使用random_shuffle()中的<algorithm>函数,但是当我查看它时,结果是它使用了rand()。这是否适合洗牌?我的印象是rand()不是随机值的非常好的来源,最好使用来自<random>的Mersenne Twister之类的东西。

1 个答案:

答案 0 :(得分:3)

首选方法是使用std::shuffle

std::shuffle(begin(), end(), std::mt19937());

std::random_shuffle()随机性来源未定义。 Visual C ++团队对此进行了评论,称他们将使用rand()而不是更好的东西来保持它,以便它保持向后兼容。