Dav*_*e S 13
std::random_shuffle有两种形式.一个需要2个参数(开始/结束迭代器),另一个需要3个(开始/结束迭代器和随机生成器).
第一种形式使用std::rand(),因此您将使用std::srand()它的随机数生成器播种.您也可以使用3参数版本并自己提供RNG.
std::random_shuffle 具有用于指定RNG的模板重载.
template <class RandomAccessIterator, class RandomNumberGenerator>
void random_shuffle ( RandomAccessIterator first, RandomAccessIterator last,
RandomNumberGenerator& rand );
Run Code Online (Sandbox Code Playgroud)
random_shuffle自C++ 14(在C++ 17中删除)后被弃用,并被shuffle替换(自C++ 11以来存在) http://en.cppreference.com/w/cpp/algorithm/random_shuffle
可能的用法:
shuffle(items.begin(), items.end(), std::default_random_engine(std::random_device()()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6069 次 |
| 最近记录: |