next_permutation与prev_permutation

来源:互联网 发布:java 动态脚本语言 编辑:程序博客网 时间:2024/05/16 19:34

STL真是好东西。


#include<algorithm>

next_permutation()函数功能是输出所有比当前排列大的排列,顺序是从小到大。

当排列已经是最大,返回假,否则真。


prev_permutation()函数功能是输出所有比当前排列小的排列,顺序是从大到小。

当排列已经是最小,返回假,否则真。


#include<iostream>#include<cstdio>#include<algorithm>#include<string>using namespace std;int main(){    int a[3];    a[0]=1;a[1]=2;a[2]=3;    do{        cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;    }    while(prev_permutation(a,a+3));       ///已经是最小,只循环一次    cout<<endl;    int k=0;    int b[4]={1,2,3,4};    do{        cout<<++k<<endl;        cout<<b[0]<<b[1]<<b[2]<<b[3]<<endl;    }while(next_permutation(b,b+4));           /// 循环24次, A(4,4);直到数组为4,3,2,1;返回假,循环结束    return 0;}



0 0