算法准备之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变成迭代器而已。

猜你喜欢

转载自www.cnblogs.com/zhengyuqian/p/10511894.html