next_permutation 函数可以用来处理全排列,例如给定一个三个int元素的数组 int arr[] ={4,1,2}; 求他们的所有排列方式
直接上代码
int arr[] ={4,1,2};
sort(arr,arr+3);
while(next_permutation(arr,arr+3))
{
for(int i=0;i<3;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
那么运行结果会是什么呢?
可以看到,除了 1 2 4 这个排列以外,其他的排列都已经打印出来了
而之所以没有打印 1 2 4 这个排列,是因为 sort函数排序后的序列正是 1 2 4,而next_permutation 返回的是当前序列的下一个序列
如果没有使用sort函数,打印结果会是什么呢?
答案是,程序只会打印 4 2 1