这是一个神器,一个全排列的函数 next_permutation(arr,arr+5),下面介绍用法:
用函数得先导入头文件 #include<algorithm>
示例代码如下
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
//使用全排函数前先将数组内容从小到大排序,不然直接结束
int arr[5] = {1,2,3,4,5};
do
{
for(int i = 0 ;i < 5;i++ )
{
printf("%d ",arr[i]);
}printf("\n");
}
while(next_permutation(arr,arr+5));
return 0;
}
大概内容是:
do{
对数组操作
}while(next_permutation(数组名,数组名+长度));
示例代码中,for循环里在顺序打印数组内容,这样当while循环结束的时候,输出的就是全排列了。因为while循环每循环一次,数组内容就会变化一次排列,开始是从大到小排列,直到数组内容从小到大的时候,排列就结束了。