头文件:#include
std::sort(first,last,cmp);
使用的范围是[first,last)
省略 cmp,使用 sort(first,last), 则默认从 小到大排序。
使用 sort(first,last, greater() ), 则 从 大到小排序。
如果是结构体或者自定义排序规则,则需要自定义cmp 函数。
相等最好返回 false
cmp函数的含义:如果返回值是 True,表示 要把 序列 (X,Y),X放Y前。
bool cmp(int &x,int &y){
return x>y;//意味着x>y的时候,把x放到y前,按大到小排序。
}
注意事项:cmp函数的比较必须按严格弱序排序,也就是严格定义<,a和b比较,如果a==b,必须返回false,否则会触发异常。
比如:
bool cmp(const T &t1, const T &t2)
{
if (t1.time <= t2.time)
return true;
else
return false;
}
比较里写成“<=”会触发异常,应改为:
bool cmp(const T &t1, const T &t2)
{
if (t1.time < t2.time)
return true;
else
return false;
}