random_shuffle使用rand()可以吗?

Is it okay that random_shuffle uses rand()?

本文关键字:shuffle 使用 rand random      更新时间:2023-10-16

我想使用<algorithm>中的random_shuffle()函数,但是当我查看它时,它原来在掩护下使用rand()。这样可以洗牌吗?我的印象是rand()不是一个很好的随机值来源,最好使用<random>中的梅森扭扭器。

首选方法是使用std::shuffle:

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

std::random_shuffle()的随机性来源未定义。Visual c++团队对此发表了评论,称他们将继续使用rand()而不是更好的,这样它将保持向后兼容。