| 容器 | 底層結構 | 特點 | 典型場景 |
|---|---|---|---|
vector | 動態數組(連續內存) | 隨機訪問 O(1),尾部增刪攤還 O(1),中間增刪 O(n) | 默認首選序列容器 |
deque | 分段連續內存塊(映射表+數據塊) | 雙端 O(1),隨機訪問 O(1),無需擴容遷移 | 雙端隊列、寬度優先搜索 |
list | 雙向循環鏈表 | 任意位置增刪 O(1),無隨機訪問,迭代器穩定 | 頻繁中間插刪、拼接 |
set/multiset | 紅黑樹(自平衡二叉搜索樹) | 有序、唯一/可重複,增刪查 O(log n) | 有序集合、去重、區間查詢 |
map/multimap | 紅黑樹(鍵值對) | 鍵有序、唯一/可重複,增刪查 O(log n) | 關鍵值映射、字典、統計頻次 |
unordered_set/map | 哈希表(桶+鏈表/開放定址) | 無序,平均 O(1),最壞 O(n) | 高性能查找、去重、計數 |
stack | 容器適配器(默認 deque) | LIFO,僅提供 push/pop/top | 遞歸轉迭代、表達式求值 |
queue | 容器適配器(默認 deque) | FIFO,僅提供 push/pop/front/back | 廣度優先搜索、任務調度 |
priority_queue | 容器適配器(默認 vector + 堆) | 最大堆,O(log n) 入隊出隊 | 顶K問題、霍夫曼編碼、Dijkstra |
vectordequelistset/mapunordered_set/map理解底層結構是驾驭 STL 性能特徵、避免誤用的關鍵。面試、優化、架構選型時必備知識。