C++11 中引入了std::shuffle函数:
template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );
它与C++11 中引入的std::random_shuffle的重载之一具有相同的签名:
template< class RandomIt, class RandomFunc >
void random_shuffle( RandomIt first, RandomIt last, RandomFunc&& r );
区别在于第三个参数,其中:
URNG 必须满足 UniformRandomNumberGenerator 的要求
这就是全部吗?差异只是shuffle
执行额外的编译时间检查吗?其他行为是否相同?