1、sort函数的介绍:
sort函数的作用和他的名字一样,是用来排序的函数,sort函数通常接受一个数据集合作为输入,并按照特定的排序规则对数据进行重新排列。除了基本的排序功能外,sort函数通常还支持自定义比较函数,以便根据特定的规则对数据进行排序。
2、sort函数的使用:
sort函数的构成,sort(首元素地址(必填),尾元素地址(必填),比较函数(非必填))
如果比较函数不填就自动按从小到大的顺序排序。
使用示例:
vector<int> a(n+1);
sort(a,a+a.size());
3、比较函数(cmp):
如果我们不想要默认的排序我们也可以自己定义cmp函数,例如我们想把数组a从大到小排序。
使用示例:
bool cmp(int a,int b){
return a>b;
}
sort(a,a+a.size(),cmp)
4、结构体排序:
直接用示例理解,给你数量n个学生,并给你他们的名字和成绩,请你把他们排名,得分高的在上面,得分一样的根据名字的字典顺序排序。
#include<bits/stdc++.h>
using namespace std;
struct student{ // 定义学生结构体
int score; // 分数
char name[10]; // 姓名,使用字符数组存储
} stu[1000000]; // 定义最多存储1000000个学生信息的数组
bool cmp(student a, student b){ // 自定义比较函数,用于sort排序
if(a.score != b.score) return a.score > b.score; // 先按分数降序排序
else return strcmp(a.name, b.name) < 0; // 分数相同时按姓名字典序升序排序
}
int main(){ // 主函数
int n; // 学生数量
cin >> n; // 输入学生数量
for(int i = 0; i < n; i++){ // 循环读入学生信息
cin >> stu[i].score; // 输入学生分数
cin >> stu[i].name; // 输入学生姓名
}
sort(stu, stu + n, cmp); // 使用自定义比较函数对学生信息进行排序
}