21xrx.com
2025-03-27 07:34:41 Thursday
文章检索 我的文章 写文章
如何在C++中随机打乱数组?
2023-07-11 20:58:20 深夜i     41     0
C++ 随机 打乱 数组

在C++中,我们可以通过调用库函数 `shuffle()` 来随机打乱数组。该函数需要传递三个参数:数组的起始地址、数组的结束地址和一个随机数生成器(可以通过函数 `random_device` 生成)。

以下是使用 `shuffle()` 函数随机打乱数组的示例代码:

#include <iostream>
#include <algorithm>
#include <random>
using namespace std;
int main()
{
  int arr[] = 3;
  int n = sizeof(arr) / sizeof(arr[0]);
  // 生成随机数生成器
  random_device rnd;
  // 调用shuffle()函数打乱数组
  shuffle(arr, arr + n, rnd);
  // 输出打乱后的数组
  for (int i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  return 0;
}

运行上述代码,可以得到输出:

4 1 9 5 2 3 8 6 7

可以看到,数组中的元素已经被随机打乱。

需要注意的是,该函数在打乱数组时是完全随机的,可能会导致打乱后的数组不符合特定的需求,因此在实际使用中需要谨慎考虑。如果需要进行某些特定的排序,可以使用其他排序算法来实现。

  
  

评论区

请求出错了