常用 STL algorithm

来源:互联网 发布:windows bash 下载 编辑:程序博客网 时间:2024/05/21 02:21

争取把每次遇到的添加进来

第一个:  sort(); 默认对n个数进行从小到大排列

调用方法  sort(a,a+n);    //n为需要排序的个数

#include<iostream>#include<algorithm>using namespace std;int main(){int a[4]={4,3,2,1};sort(a,a+4);for(int i=0;i<4;i++)printf("%d ",a[i]);return 0;}  //结果为1 2 3 4 


第二个 :  next_permutation   产生全排列的下一个数。

调用方法  next_permutation(a,a+n);   //n为排列个数

#include<iostream>#include<algorithm>using namespace std;int main(){int a[3]={1,2,3};int i;do{for(i=0;i<=2;i++)printf("%d ",a[i]);printf("\n");}while(next_permutation(a,a+3));return 0;}

然而对于结构体内某个值如何进行全排列呢。。

这里就要用到operator <  这个方法


下面是具体程序


#include<iostream>#include<algorithm>using namespace std;struct node{int x,y;int k;bool operator <(const node p)const {return k<p.k;}}a[10];int main(){for(int i=0;i<3;i++)cin>>a[i].k;do{for(i=0;i<3;i++)printf("%d ",a[i].k);printf("\n");}while(next_permutation(a,a+3));return 0;}




原创粉丝点击