c++sort

一、c++sort 如何实现多关键字排序,以及如何升序排序降序排序 

#include <iostream>
#include <algorithm>

typedef struct STU
{
    int n;
    int c;
    int m;
    int e;
    int s;
}stu;

using namespace std;


bool cmp(stu a,stu b)
{
    //第一关键字相同,按第二关键字排序
    if(a.s==b.s)
    {
        //第二关键字相同,按第三关键字排序
        if(a.c == b.c)
        {
            return a.n<b.n;
        }
        else    return a.c > b.c;
    }
    //降序排序
    else    return a.s > b.s;
    //      return a.s < b.s;//升序排序
}

int main()
{
    stu a[310];
    int n;cin>>n;
    for(int i = 1; i <= n ; i ++ )
    {
        scanf("%d%d%d",&a[i].c,&a[i].m,&a[i].e);
        a[i].n = i;
        a[i].s = a[i].c + a[i].m + a[i].e;
    }
    sort(a+1,a+n+1,cmp);
    for(int i = 1; i <=5; i ++ )    printf("%d %d\n",a[i].n,a[i].s);
    
    return 0;
}

二、c++对vector进行排序

vector<int> a;

sort(a.begin(), a.begin() + n, cmp);

posted @   cxy8  阅读(44)  评论(0)    收藏  举报
相关博文:
阅读排行:
· 博客园2025新款「AI繁忙」系列T恤上架
· 7 个最近很火的开源项目「GitHub 热点速览」
· 记一次 .NET某固高运动卡测试 卡慢分析
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· DeepSeekV3:写代码很强了
点击右上角即可分享
微信分享提示