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  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示