跳到正文
信奥逐课

第 123 课

自定义排序

🟢 入门 约 5 分钟

一句话理解

自定义排序告诉 sort:谁应该排在谁前面。

为什么要学

多关键字:先按分数降序,分数相同按编号升序。

讲解

写 bool cmp(const Stu& a, const Stu& b)。返回 true 表示 a 应排在 b 前。必须严格弱序,相等时返回 false。

也可以在结构体里重载 operator<。

例子

bool cmp(const Stu& a, const Stu& b) {
    if (a.score != b.score) return a.score > b.score;
    return a.id < b.id;
}
sort(a + 1, a + n + 1, cmp);

分数高的在前;分数相同,id 小的在前。

常见错误

练习 做完再看下一课

比较函数里两个元素相等时应返回?

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课