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 值)

相关推荐
小羊没烦恼!3 分钟前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
❀͜͡傀儡师7 分钟前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
程序员老陆7 分钟前
WIN32_LEAN_AND_MEAN:Windows 头文件里的“精简编译开关”
c++·windows
weixin_307779139 分钟前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
实心儿儿15 分钟前
Qt — Qt 多线程
开发语言·qt
小小龙学IT1 小时前
Go 泛型(Generics)深度解析:从类型参数到生产实践
开发语言·数据库·golang
hold?fish:palm1 小时前
45 二叉树的右视图
开发语言·c++·算法
MI_farmer1 小时前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
“AI国潮设计-小江”1 小时前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc
ShineWinsu1 小时前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构