random_shuffle

random_shuffle的用法是什么

小亿
164
2023-08-02 17:46:36
栏目: 编程语言

random_shuffle是一个函数,用于将一个序列中的元素进行随机重排。它可以应用于数组、向量、字符串等容器,使用随机数生成器对容器中的元素进行重新排列。

random_shuffle的用法如下:

  1. 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

  1. 自定义随机数生成器:
#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函数替代。

0
看了该问题的人还看了