关于快排函数中的cmp函数参数

关于快排函数中的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函数,可以使用快排针对结构体某一元素进行排序。

你可能感兴趣的:(快速排序)