最近在刷王道考研机试指南(机试小白),惊奇的发现 sort() 函数功能不是简单排个序。
sort()函数原型:
1 | sort(start,end,cmp); |
sort() 函数包含在头文件为 #include <algorithm> 的 c++ 标准库中
一般我就使用两个参数的,第三个参数默认从小到大排序。例如对数组 a[n] 排序:sort(a,a+n);
sort() 函数的强大之处是在它的第三个参数排序方法,可以任意的设定自己的规则,使排序对象按照自己指定的规则进行排序。
cmp 函数定义规则:当 cmp 的返回值为 true 时,即表示 cmp 函数的第一个参数将会排在第二个参数之前,反之,第一个参数将会排在第二个参数之后。
例 2.2 成绩排序:有 N 个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。
输入:测试数据有多组,每组输入第- 行有一个整数 N (N<=1000) ,接下来的N行包括N个学生的数据。每个学生的数据包括姓名(长度不超过 100 的字符串)、年龄(整型数)、成绩(小于等于 100 的正数)。
输出:将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。然后输出学生信息,按照如下格式:姓名 年龄 成绩
1 |
|