#include<bits/stdc++.h>
using namespace std;
int main(){
int num[3]={1,2,3};
do
{
cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;
}while(next_permutation(num,num+3));
return 0;
}
这个代码输出的为
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
可以看出,为全排列
当把 next\_permutation(num,num+3) 改为 num+2,输出就变为了
1 2 3
2 1 3
只针对前两位进行全排列
由此可以看出,next\_permutation(num,num+n) 函数是对数组 num 中的前 n 个元素进行全排列,同时并改变 num 数组的值。