你是否 STL 不会用一点?
1 pair
2 array
3 vector
4 string
5 堆/优先队列
以下数据结构具有完全的相同复杂度。
- priority_queue 支持 插入一个数、删除最值,查询全局第 k 大、最值。
- Heap 支持原数组单点修改、插入一个数、删除最值,查询全局第 k 大、最值。可以代替 priority_queue 。
- multiset 或 set 可以代替 Heap 。
- Fenwick Tree 可以代替 Heap 。不能代替 multiset 或 set。
于是 priority_queue 仅仅只是 cache 友好。
考虑应用场景,priority_queue 能且只能维护静态集合最值。
6 set
6.1 set 维护下标
Codeforces Round 849 (Div. 4)
6.2 维护动态集合的第 K 大,支持集合单点增/删
luogu 对顶堆
6.3
AT_abc341_e
7 multiset
7.1 维护有序数组、它的差分数组。单点增/删,最值查询。
9 queue
10 dequeue
11 stack
12 map
13 封装哈希表 HashMap
14 bitset
——永远是挑战而不是练习,下次一定更好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!