你是否 STL 不会用一点?

1 pair

2 array

3 vector

4 string

5 堆/优先队列

以下数据结构具有完全的相同复杂度。

  1. priority_queue 支持 插入一个数、删除最值,查询全局第 k 大、最值。
  2. Heap 支持原数组单点修改、插入一个数、删除最值,查询全局第 k 大、最值。可以代替 priority_queue 。
  3. multiset 或 set 可以代替 Heap 。
  4. 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

posted @ 2024-03-09 06:46  zsxuan  阅读(6)  评论(0编辑  收藏  举报