📅  最后修改于: 2023-12-03 15:07:52.431000             🧑  作者: Mango
在C++中,可以使用STL库中的**随机洗牌函数shuffle()**来对数组进行随机排列。这个函数位于
shuffle()函数的定义如下:
template< class RandomIt >
void shuffle( RandomIt first, RandomIt last, UniformRandomBitGenerator&& g );
其中,参数first和last表示需要随机排列的元素的范围。例如,对于数组a,可以使用以下方式进行随机排列:
int a[] = {1, 2, 3, 4, 5};
shuffle(a, a+5, default_random_engine());
上述代码将数组a中的元素随机排列。参数g是一个可选参数,用于指定随机数生成器。如果不指定,则使用默认生成器default_random_engine()。
下面是一个完整的代码示例,用于将数组a中的元素随机排列:
#include <iostream>
#include <algorithm>
#include <random>
using namespace std;
int main()
{
int a[] = {1, 2, 3, 4, 5};
random_shuffle(a, a+5);
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
输出结果为:
2 5 4 1 3
通过使用STL中的shuffle()函数,可以方便地对数组进行随机排列。这对于一些需要随机性的算法问题非常有用。需要注意的是,该函数必须要引入头文件