sort的使用

C++ 中sort 函数及 cmp 自定义规则的使用

需要用到的头文件

1
2
#include<algorithm>
using namespace std;

需要传两到三个参数,数据类型不限,只要是内定义了大小比较符,我们可以只传两个参数(区间首地址,区间尾地址的下一个地址)例如sort(a,a+n),对从a[0]到a[n-1]的数据进行从小到大的排序,如果想要改变排序方式或者对内部未定义大小比较符的进行排序,我们需要再传个比较函数cmp进去。,例如:

1
2
3
4
5
6
7
8
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a
if(x.b!=y.b) return x.b>y.b;
return return x.c>y.c;
}

sort(arr,arr+n,cmp);

先按a值升序排列,如果a值相同,再按b值降序排列,如果b还相同,就按c降序排列。