next_permutation 将按字母表顺序生成给定序列的下一个较大的序列,直到整个序列为

 #include"iostream"
#include"algorithm"
using namespace std;
int main(){
int n,p[];
cin>>n;
for(int i=;i<n;i++){
cin>>p[i];
}
sort(p,p+n);
do{
for(int i=;i<n;i++)
cout<<p[i]<<" ";
cout<<endl;
}while(next_permutation(p,p+n));
return ;
}

减序为止。

prev_permutation函数与之相反,是生成给定序列的上一个较小的序列。

二者原理相同,仅遍例顺序相反.

string的nextl;

 #include<iostream>
#include<string>
#include<algorithm>
using namespace std; int main() {
string s1;
while (cin >>s1&&s1!="#") {
if (next_permutation(s1.begin(),s1.end()))
cout <<s1<< endl;
else
cout <<"No Successor"<<endl;
}
return ;
}
04-14 03:27
查看更多