c++ STL less 的视角

c++ less 函数在不同的地方感觉所起的作用是不一样的, 这中间原因是 less 的视角不一样, 下面尝试给出解释下, 方便记忆

1、 左右视角

符合

排序sort

less(value, element)

less 表示一种 "符合关系" , 表示sort 后, 整个数组从前到后符合< 的关系 , 方向是从前到后

二分函数

std::upper_bound

less(value, element)
从左到右找到第一个符合 less的

std::lower_bound

less(element, value)

从左到右找到第一个不符合less 的,

下面这个图,方面记忆value 和element 在 less 里的位置

2、 下上视角

优先队列(如 std::priority_queue)

底层逻辑理解:

堆, 构造的时候使用的是 heapUp 的一种操作,即首先将成员加入内部存储如 vetor 尾部, 然后对改成员进行跃升heapUP

设当前为now, 父节点为 p

less(now, p), 那么这个时候less 就是一种 自顶向上的符合关系 仰视视角的符合

记忆技巧

值越小优先级越高(比如linux 进程调度的 的PRI 值)

相关推荐
LDR0061 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术1 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园1 小时前
C++20 Modules 模块详解
java·开发语言·spring
swordbob2 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享2 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.2 小时前
C语言--day30
c语言·开发语言
玖玥拾2 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..3 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽3 小时前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下3 小时前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php