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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署