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

相关推荐
白山编程大哥28 分钟前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
hansang_IR28 分钟前
【题解】[APIO2023] 赛博乐园 / cyberland
c++·算法·图论
落羽的落羽1 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生1 小时前
Linux-进程控制
linux·运维·服务器·c++
shmily麻瓜小菜鸡1 小时前
JavaScript / TypeScript 易踩坑知识点 —— 异步编程类
开发语言·javascript·typescript
刃神太酷啦1 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
七夜zippoe2 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
znnnk2 小时前
【Python】GUI 开发从入门到实战(三):PyQt/PySide 进阶之路
开发语言·python·pyqt
Despacito10062 小时前
Java后端性能探查工具速查表
java·开发语言
晊晌_h3 小时前
嵌入式从0到精通——Linux C|TCP 并发服务器实现方案详解
服务器·开发语言·tcp/ip