有些需要重新对std::vector对象重新排序,特别是游戏,例如说:扑克牌,麻将,抽奖等,C++标准已经为std::vector写好了随机排序的方式,这里做个笔记:
#include <algorithm> 。。。。。 std::random_shuffle(cards_.begin(), cards_.end()); //在C++11的标准里面又添加了 #include <algorithm> #include <random> auto rng = std::default_random_engine {}; std::shuffle(std::begin(cards_), std::end(cards_), rng);
随机本来是挺简单的,日常大家的做法是rand()%n,即可得到一个n范围内的变量,来自行随机,但实际的效果没有std实现的随机好,实在想用的话,使用创建std::vector集合来实现随机吧