博客
关于我
c++之greater和less在stl中运用
阅读量:195 次
发布时间:2019-02-28

本文共 1014 字,大约阅读时间需要 3 分钟。

greater< type >()和less< type >()是functional下的两个仿函数,都重载了操作符,它们的源码如下:

greater

/// One of the @link comparison_functors comparison functors@endlink.  template
struct greater : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } };

less

/// One of the @link comparison_functors comparison functors@endlink.  template
struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } };

可见greater是从大到小排,less是从小到大排。

stl中sort(begin, end),lower_bound( begin,end,num)和upper_bound( begin,end,num)默认的是从小到大排,如果要从大到小排,在最后的参数上写上“greater< int >()”或者写自定义比较函数:

bool cmp(const int& a,const int& b){   return a > b;}

greater< int>()表示内置类型从大到小排序,比如说原序列是1,2,4,7,15,34,在greater< int>()的表示下,1>2>4>7>15>34,

优先队列priority_queue< type >和上面的不一样,它的默认的取出顺序是从大到小的,相当于less,从小到大就要写成

priority_queue 
,greater
> q;

转载地址:http://qrki.baihongyu.com/

你可能感兴趣的文章
Netty工作笔记0019---Selector API介绍
查看>>
Netty工作笔记0020---Selectionkey在NIO体系
查看>>
Netty工作笔记0021---NIO编写,快速入门---编写服务器
查看>>
Netty工作笔记0022---NIO快速入门--编写客户端
查看>>
Vue踩坑笔记 - 关于vue静态资源引入的问题
查看>>
Netty工作笔记0024---SelectionKey API
查看>>
Netty工作笔记0025---SocketChannel API
查看>>
Netty工作笔记0026---NIO 网络编程应用--群聊系统1---编写服务器1
查看>>
Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
查看>>
Netty工作笔记0028---NIO 网络编程应用--群聊系统3--客户端编写1
查看>>
Netty工作笔记0029---NIO 网络编程应用--群聊系统4--客户端编写2
查看>>
Netty工作笔记0030---NIO与零拷贝原理剖析
查看>>
Netty工作笔记0031---NIO零拷贝应用案例
查看>>
Netty工作笔记0032---零拷贝AIO内容梳理
查看>>
Netty工作笔记0033---Netty概述
查看>>
Netty工作笔记0034---Netty架构设计--线程模型
查看>>
Netty工作笔记0035---Reactor模式图剖析
查看>>
Netty工作笔记0036---单Reactor单线程模式
查看>>
Netty工作笔记0037---主从Reactor多线程
查看>>
Netty工作笔记0038---Netty模型--通俗版
查看>>