根据cppreference.com引用网站 std::shufle ,以下方法在 c++14 中被弃用:
template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last );
为什么不传递第三个参数就不能调用下面的函数了?
std::random_shuffle(v.begin(),v.end()); //no longer valid in c++14
看起来不同的功能减速没有默认参数集。这背后的原因是什么?是否添加了某种替代方案?
最佳答案
std::random_shuffle
可以在后台使用 random
C 族函数。这些函数将全局状态用于种子和其他状态。
所以它被弃用了,因为 shuffle
会做同样的事情,但会更好。即,它使用新的 <random>
来自 C++11 的头文件,它不使用全局状态,而是使用生成器、设备和分发的自己的对象。
关于c++ - 为什么在 C++14 中不推荐使用 std::shuffle 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600100/