random_shuffle是一个函数,用于将一个序列中的元素进行随机重排。它可以应用于数组、向量、字符串等容器,使用随机数生成器对容器中的元素进行重新排列。
random_shuffle的用法如下:
- C++标准库使用:
#include#include // 用于生成随机数种子 int main() { std::vector vec = {1, 2, 3, 4, 5}; // 设置随机数种子 std::srand(unsigned(std::time(0))); // 随机重排容器中的元素 std::random_shuffle(vec.begin(), vec.end()); // 输出结果 for (const auto& num : vec) { std::cout << num << " "; } return 0; }
输出结果可能为:3 1 4 5 2
- 自定义随机数生成器:
#include#include #include // 用于生成随机数种子 int main() { std::vector vec = {1, 2, 3, 4, 5}; // 设置随机数生成器 std::random_device rd; std::mt19937 g(rd()); // 随机重排容器中的元素 std::random_shuffle(vec.begin(), vec.end(), g); // 输出结果 for (const auto& num : vec) { std::cout << num << " "; } return 0; }
输出结果可能为:4 1 3 5 2
注意:C++11标准中已将random_shuffle标记为已废弃,建议使用shuffle函数替代。