C++ STL的sort 函数 以及自定义的比较函数

    没什么特别擅长的内容,先做个小笔记好了。在编程时,使用C++的标准模板库(STL)能节约工作量,增加代码的可读性,能灵活运用无疑会提高编程的效率,俗话说:Write less, create more ~

 

    然后这篇笔记就简单讨论一下sort函数吧。对于vector,我们使用algorithm头文件中的sort函数来排序元素,如果元素类型是实数、字符串之类的,直接使用sort 函数就可以方便的排序了。使用方法就是:

    #include <vector>

    #include <algorithm>

    ...

    vector<int> numbers;

    ...

    sort(numbers.begin(),numbers.end());

    传入要排序部分头尾的迭代器就ok了,默认的结果是将元素按从小到大的顺序排序。

 

    sort 函数的功能很易于扩展,我们可以给它一个比较函数,让它按我们希望的方式工作。

    如果想要自定义比较函数,就像这样:

    bool less_int(int a,int b){

        return b<a;

    }

    ...

    sort(numbers.begin(),numbers.end(),less_int);

    函数名称随便,合法就可以。传入的参数类型与vector 的元素类型相同。函数的返回值是bool 类型的,如果第一个参数比第二个小就返回true,反之返回 false。上面的例子就是当b小于a时,认为a小于b。所以排序的结果就是将元素按从大到小的顺序排序。

    其他深入的分析我就不做了,这些对应用来说足够了。至于时间复杂度、稳定性之类的,自从数据结构结课之后,我就没关心过了 - -b

 

    

 

posted @ 2014-07-08 21:32  J-Y-T  阅读(17920)  评论(0编辑  收藏  举报