📜  在C++中使用STL随机排列数组(1)

📅  最后修改于: 2023-12-03 15:07:52.431000             🧑  作者: Mango

在C++中使用STL随机排列数组

在C++中,可以使用STL库中的**随机洗牌函数shuffle()**来对数组进行随机排列。这个函数位于头文件中。

用法

shuffle()函数的定义如下:

template< class RandomIt >
void shuffle( RandomIt first, RandomIt last, UniformRandomBitGenerator&& g );

其中,参数firstlast表示需要随机排列的元素的范围。例如,对于数组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()函数,可以方便地对数组进行随机排列。这对于一些需要随机性的算法问题非常有用。需要注意的是,该函数必须要引入头文件