如果您查看 C++11 中随机 shuffle 的规范,则有 3 个函数。我的问题是什么是典型的用途和优势:
template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );
相比:
template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last );
我的意思是,似乎无论 URNG 是什么(均匀分布),结果都是一样的(从统计的角度来看)。我看到的唯一一点是,它std::shuffle
是安全的,而这种重载std::random_shuffle
不是。你能确认一下吗?
编辑:我认为 URNG 应该是一个统一的分布,但似乎没有编译。那么有人可以提供一个使用的小例子std::shuffle
吗?