next_permutation() 是一个 C++ STL 函数,它可以用于生成下一个排列。
使用方法:
1.首先要包含头文件#include<algorithm>
2.定义一个储存排列的数组或者容器,例如:int a[10]或者vector<int> v,并初始化
3.调用next_permutation()函数,该函数有两个参数,参数表示排列的起始位置和终止位置
例如:next_permutation(v.begin(),v.end());
next_permutation(a,a+10);
4.如果当前排列的下一个排列存在,则函数返回true,并将当前排列修改成下一个排列。如果当前排列已经时最后一个排列,则函数返回false,并将当前排列修改成第一个排列。
例如:下面一个列子,1~3的全排列。该程序定义了一个包含三个整数的int数组,然后用do—while循环不断生成下一个排列,并输出每个排列。最终输出所有的3!=6种排列。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[3]={1,2,3};
do
{
for(int i=0;i<3;i++)
cout<<a[i]<<' ';
cout<<endl;;
}
while(next_permutation(a,a+3));
}
输出结果为:
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1