简单用法
sort()函数有三个参数,第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址,第三个参数为比较参数
sort()函数包含在algorithm头文件中,要加上这个文件头
#include <algorithm>
sort()函数默认是对数据进行升序排列
vector<int> a;
sort(a.bengin(),a.end());
自定义排序
比较函数
自己定义一个排序方式,比如需要降序排列,可以先写一个比较函数
bool cmp(int a,int b)
{
return a>b; //默认a在b的左边,a>b定义为true,就是降序
}
vector<int> a;
sort(a.bengin(),a.end(),bmp);
对结构体进行排序,比如结构体有a,b两个成员,a升序,a相同按b降序排列,比较函数就可以写为
struct node{
int a,b;
}
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a<y.a;
if(x.b!=y.b) return x.b>y.b;
}
函数内定义
直接在sort()内写比较函数
vector<int> a;
sort(a.bengin(),a.end(),[](int a,int b){return a>b;});