1.如何使用sort排序
P235
#include<algorithm>
using namespace std;
sort(首元素地址(必填),尾元素地址的下一地址(必填),比较函数(非必填));
如果需要对序列进行排序,那么序列中的元素一定要有可比性,因此需要制定排序规则来建立这种可比性。特别像是结构体,本身并没有大小关系,需要人为制定比较的规则。sort的第三个可选参数就是compare函数(一般写作cmp函数),用来实现这个规则。
2.如何实现比较函数
(1)基本数据类型数组的排序(int, double, char)
bool cmp(int a, int b) {
return a > b; // 可以理解成a > b时把a放在b前面
(2)结构体数组的排序
struct node{
int x, y;
}ssd[10];
bool cmp(node a, node b){
return a.x>b.x; //按照x从大到小的顺序
}
如果想先按x从大到小排序,但当x相等的情况下,按照y的大小从小到大来排序(即进行二级排序),那么cmp的写法是:
bool cmp(node a, node b){
if(a.x !=b.x) return a.x > b.x;
else return a.y < b.y;
(3)容器的排序(暂时没有)