random_shuffle是C++标准库中的一个算法函数,用于将指定范围内的元素随机重排。它的用法如下:
#include#include int main() { std::vector numbers = {1, 2, 3, 4, 5}; // 随机重排numbers中的元素 std::random_shuffle(numbers.begin(), numbers.end()); // 输出重排后的结果 for (int num : numbers) { std::cout << num << " "; } return 0; }
上述代码会输出一个随机重排后的数字序列,例如可能的输出为:4 3 1 5 2。
random_shuffle接受两个迭代器参数,表示要重排的范围。在上述例子中,我们使用了vector的begin()和end()成员函数来获取迭代器。你也可以使用其他容器的迭代器或者普通的指针。
需要注意的是,random_shuffle是在C++11中被废弃的,建议使用更为灵活的shuffle函数。shuffle函数的用法与random_shuffle类似,只是要额外传入一个随机数生成器作为第三个参数。示例代码如下:
#include#include #include int main() { std::vector numbers = {1, 2, 3, 4, 5}; // 创建一个随机数生成器 std::random_device rd; std::mt19937 gen(rd()); // 随机重排numbers中的元素 std::shuffle(numbers.begin(), numbers.end(), gen); // 输出重排后的结果 for (int num : numbers) { std::cout << num << " "; } return 0; }
这样,我们就可以使用自己定义的随机数生成器来进行重排操作,使得结果更加随机。