如果没有为标准库中的random_shuffle算法提供
随机生成器
函数,如果提供相同的数据,程序的连续运行是否会
生成相同的
随机序列?
例如,如果
std::random_shuffle(filenames.begin(),filenames.end());
在程序的连续运行中,在目录中的同一文件名列表上执行,生成的随机序列与先前运行中的相同吗?
25.2.11只是说元素是均匀分布的.它不能保证在幕后使用哪个RNG(除非您将其传入),因此您不能依赖任何此类行为.
为了保证相同的洗牌结果,您需要提供自己的RNG来提供这些保证,但我怀疑即使这样,如果您更新标准库,random_shuffle算法本身也可以改变效果.