算法训练2020/01/10

Sort

头文件 \

用法:

-升序sort(buff, buff+n)
-降序sort(buff, buff+n, cmp)
1
2
3
bool cmp(int x, int y){
return x > y; // 如果结果为true,则第一个参数排在第二个参数前面
}
-对结构体进行排序
-方法1:使用cmp
1
2
3
4
5
6
7
8
9
10
11
bool cmp(student x, student y){
if(x.score != y.score){
return x.score < y.score;
}
if(x.name != y.name){
return x.name < y.name;
}
else{
return x.age < y.age;
}
}
-方法2:直接定义结构体的小于运算符(只有就只要用sort(buf, buf+n))
1
2
3
4
5
6
7
8
9
10
11
struct student{
string name;
int age;
int score;
bool operator < (const student &b) const{
// 后面那个const表示该成员函数不修改类成员的值
if(score != b.score) return score < b.score;
if(name != b.name) return name < b.name;
else return age < b.age;
}
};