random()的两个缺点:
做格式化时,结果常常是扭曲的,所以得不到正确的随机数(如某些数的出现频率要高于其它数);
random()只支持整型数;不能用它来产生随机字符,浮点数,字符串或数据库中的记录。
random_shuffle()用来打乱元素排列顺序,random_shuffle()有两个参数,第一个参数是指向序列首元素的迭代器,第二个参数则指向序列最后一个元素的下一个位置。下列代码段用random_shuffle()算法打乱了先前填充到向量中的元素:
random_shuffle(legal.begin(), legal.end());
所有STL算法不仅适用于容器,也适用于序列。因此,你也能将random_shuffle()算法应用于内置数组。只是要注意random_shuffle()的第二个参数要指向数组上界的下一个元素位置: