首页 > 代码库 > C++ STL的sort 函数 以及自定义的比较函数
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