random_shuffle的用法是什么

305
2023/8/15 17:46:36
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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函数替代。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: random_shuffle的用法是什么