添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

原因 :属于C++14之前标准,后续版本被弃用。

在C++中,std::random_shuffle 是一个函数模板,用于将一个容器中的元素随机打乱。然而,从C++14开始,std::random_shuffle 被标记为弃用,并且在C++17中被完全移除。取而代之的是使用 std::shuffle 函数,它接受一个随机数生成器作为参数来打乱容器中的元素。

使用 std::random_shuffle (C++11及之前的版本)

#include <algorithm>
#include <vector>
#include <iostream>
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    // 使用 random_shuffle 打乱 vec 中的元素
    std::random_shuffle(vec.begin(), vec.end());
    for (int num : vec) {
        std::cout << num << " ";
    std::cout << std::endl;
    return 0;

使用 std::shuffle(C++14及之后的版本)

#include <algorithm>
#include <vector>
#include <iostream>
#include <random> // 引入随机数库
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    // 创建一个随机数生成器
    std::mt19937 generator(std::random_device{}());
    // 使用 shuffle 和随机数生成器打乱 vec 中的元素
    std::shuffle(vec.begin(), vec.end(), generator);
    for (int num : vec) {
        std::cout << num << " ";
    std::cout << std::endl;
    return 0;
				
randomshuffle算法\color{blue} random-shuffle算法randomshuffle算法 在STL中,函数random_shuffle()用来对一个元素序列进行随机排序。 函数原型如下: template<class RandomAccessIterator> void random_shuffle( RandomAccessIterator _...
重排序给定范围 [first, last) 中的元素,使得这些元素的每个排列拥有相等的出现概率。 1) 随机数生成器是实现定义的,但经常使用函数 std::rand 。 2) 随机数生成器为函数对象 r 。 3) 随机数生成器为函数对象 g 。
STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的) srand(time(0)); 这个是设置时间种子,加了这句才能保证每次都是随机的,不然就不太随机。 #include<bits/stdc++.h> using namespace std; int main() srand(time(0)); int a[5] = {5,2,2,4,1}; random_shuffle.
std::random_device random_device 类定义的函数对象可以生成用来作为种子的随机的无符号整数值。 std::random_device rd; 构造函数有一个 string& 类型的参数,它有定义的默认值。在我们像这样省略它时,会得到我们环境中默认的 random_device 对象。 用 random_device 对象生成一个种子值: auto see...
//STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的),函数原型如下: /* template <class RandomAccessIterator> void random_shuffle( RandomAccessIterator _First, //指向序列首元素的迭代器 RandomAccess...
本文介绍了STL中的变序类算法(mutating algorithm)里面的洗牌算法:std::random_shufflestd::shuffle. random_shuffle算法在C++11之前就已经存在,C++11之后由于右值引用的引入,它的使用范围变大了。 shuffle算法则是从C++11之后才开始出现,可以与随机数和分布库一起使用。 与本系列的其他文章一样,本文介绍该最新的使用方法,比如rand