自定义sort函数
1.升序排列
sort函数如果不传入第三个参数,则默认是升序排列。
2.降序排列
可以使用自定义的比较函数,函数的返回值为bool类型,例如:
bool cmp(int num1, int num2) {
return num1 > num2; // 可以简单理解为 > 降序排列; < 升序排列
}
return num1 > num2; // 可以简单理解为 > 降序排列; < 升序排列
}
3.结构体排序(自定义比较函数)
要对元素进行排序,前提是元素之间可以进行比较,即谁大谁小。 基本数据类型可直接进行大小比较, 但结构体元素之间的大小关系需要我们自己指定,如果不指定,则结构体之间大小关系就不确定,则不能够排序。
例如:
bool cmp(Student s1, Student s2) { // 自定义排序
if (s1.grade != s2.grade) { // 如果学生成绩不相同
return s1.grade > s2.grade; // 则按照成绩降序排列
}
return s1.name < s2.name; // 否则按照姓名升序排列
}
4.自定义comp函数返回true或false作用
if (s1.grade != s2.grade) { // 如果学生成绩不相同
return s1.grade > s2.grade; // 则按照成绩降序排列
}
return s1.name < s2.name; // 否则按照姓名升序排列
}
4.自定义comp函数返回true或false作用
自定义函数返回值为bool类型
- 若返回true,则表示num1 与num2应该交换顺序;
- 若返回false, 则num1 与num2 保持原有顺序;
bool cmp(int num1, int num2) { // 实现降序排列
return num1 > num2; // num1大于num2时返回true,否则返回false
}
return num1 > num2; // num1大于num2时返回true,否则返回false
}