关于快排函数中的cmp函数参数
用于快排中比较的函数,可以控制从大到小或者从小到大。
本文主要讨论在c++中的用法。
快排:void sort( iterator start, iterator end, StrictWeakOrdering cmp );
如果是普通实数的排序,则用法如下。
bool cmp(int a ,int b)
{
return a < b ; //从小到大排序,把 < 换成 > 就是从大到小
}
如果是结构体或者c++中其他容器中的某个元素的排序,则用法如下。
struct cmp{
bool operator ()(const int a , const int b)
{
return a < b ; // 从小到大,反过来就是从大到小,此处的a和b应该是结构体中的元素,
//如return a.elem < b.elem ;
}
};
通过使用合适的cmp函数,可以使用快排针对结构体某一元素进行排序。