发布时间:2025-12-11 02:00:04 浏览次数:1
random_shuffle是一个函数,用于将一个序列中的元素进行随机重排。它可以应用于数组、向量、字符串等容器,使用随机数生成器对容器中的元素进行重新排列。
random_shuffle的用法如下:
C++标准库使用:#include <algorithm>#include <ctime> // 用于生成随机数种子int main() {std::vector<int> 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 <algorithm>#include <vector>#include <random> // 用于生成随机数种子int main() {std::vector<int> 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函数替代。