STL中sort排序算法第三个参数_Compare的实现本质

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL中sort排序算法第三个参数_Compare的实现本质相关的知识,希望对你有一定的参考价值。

关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数。

  • 重载运算符
  • 全局的比较函数
  • 函数对象

我认为从实现方式看,重载运算符和函数对象实现本质上是一样的:两者都是括号运算符的重载。

  • 重载运算符利用了泛型模板,再重载模板中的括号运算福,接着重载里面的大于小于操作符;
  • 而函数对象则是直接针对自己的对象重载括号运算符。

下图是其中一个泛型模板比较函数,位于头文件stl_function.h中。

技术分享

 『注:本文来自博客园“小溪的博客”,若非声明均为原创内容,请勿用于商业用途,转载请注明出处http://www.cnblogs.com/xiaoxi666/p/6424726.html

以上是关于STL中sort排序算法第三个参数_Compare的实现本质的主要内容,如果未能解决你的问题,请参考以下文章

如何利用C++/STL vector的sort算法对元素是自定义类型进行排序

STL_算法_局部排序(partial_sortpartial_sort_copy)

STL_算法_对所有元素排序(sortstable_sort)

STL_算法_对全部元素排序(sortstable_sort)

STL_算法_局部排序(partial_sortpartial_sort_copy)

STL_算法_局部排序(partial_sortpartial_sort_copy)