next_permutation
用法:穷举一个集合的所有全排列情况
举例如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num[3]={1,2,3};
do
{
printf("%d %d %d\n",num[0],num[1],num[2]);
}
while(next_permutation(num,num+3));
return 0;}
结果如下:
ps:next_permutation()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。
对于字符数组与整型我到现在还没找到区别
#include<bits/stdc++.h>
using namespace std;
int main()
{
char num[9]={'a','b','c','d','e','f','g','h','i'};
do
{
printf("%c %c %c %c %c %c %c %c %c\n",num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9]);
}while(next_permutation(num,num+9));
return 0;
}