算法准备之c++ sort使用示例
#define _CRT_SBCURE_NO_DEPRECATE #include <set> #include <cmath> #include <queue> #include <stack> #include <vector> #include <string> #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> #include <functional> using namespace std; struct data{ int a; int b; int val; }; bool comp(data a,data b){ return a.a*a.b>b.a*b.b; } void outdata(data &d){ cout<<d.a<<'\t'<<d.b<<'\t'<<d.val<<endl; } const int maxn = 110; const int INF = 0x3f3f3f3f; int main(){ int a[20]={2,4,1,23,5,76,0,43,24,65},i; for(i=0;i<20;i++) cout<<a[i]<<'\t'; cout<<endl; sort(a,a+20); for(i=0;i<20;i++) cout<<a[i]<<'\t'; cout<<endl; data datas[10]; for(i=0;i<10;i++){ datas[i].a=rand(); datas[i].b=rand(); datas[i].val=datas[i].a*datas[i].b; outdata(datas[i]); } cout<<endl; sort(datas,datas+10,comp); for(i=0;i<10;i++){ outdata(datas[i]); } cout<<endl; return 0; }
遇到算法需要按自己定义的数据排序的时候调用的函数,差不多是这样,如果遇到stl使用方法也一样。只是参数1和2变成迭代器而已。