2024年3月9日发(作者:)

c++ random_shuffle函数

C++中的random_shuffle函数是一个随机打乱序列的函数。它可

以帮助我们在程序中随机打乱数组、字符串等序列,常常用于洗牌、

随机化等场合。

使用random_shuffle函数非常简单,只需要包含头文件

即可,函数原型为:

template

void random_shuffle(RandomAccessIterator first,

RandomAccessIterator last);

其中,first和last是迭代器,表示要打乱的区间。函数会将

[first,last)区间内的元素随机打乱。

需要注意的是,random_shuffle函数是依赖于随机数生成器的,

因此需要提供一个随机数生成器。如果不提供,则使用C函数rand()

生成随机数。如果需要更强的随机数生成器,可以使用C++11中的

random库。

下面是一个使用random_shuffle函数打乱数组的示例代码:

#include

#include

#include

using namespace std;

int main()

{

- 1 -

int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// 设置随机数种子

srand((unsigned int)time(NULL));

// 打乱数组

random_shuffle(arr, arr + 10);

// 输出打乱后的数组

for (int i = 0; i < 10; i++)

{

cout << arr[i] << ' ';

}

cout << endl;

return 0;

}

运行结果可能如下:

7 4 1 10 2 8 9 6 5 3

可以看到,原本按顺序排列的数组被随机打乱了。

- 2 -