Skip to Content

STL 容器

STL 中常用的容器有 vector、deque、list、map、set、multimap、multiset、unordered_map、unordered_set 等 STL 中常见的容器适配器有 stack、queue、priority_queue 等

常见复杂度

容器插入查看删除描述
vectorO(n)O(1)O(n)采用一维数组实现,元素在内存连续存放
dequeO(n)O(1)O(n)采用双向队列实现,元素在内存连续存放
listO(1)O(n)O(1)采用双向链表实现,元素存放在堆中
map/multimapO(logN)O(logN)O(logN)采用红黑树实现,红黑树是平衡二叉树的一种
set/multisetO(logN)O(logN)O(logN)采用红黑树实现,红黑树是平衡二叉树的一种
unordered_map/unordered_multimapO(1),最坏O(n)O(1),最坏O(n)O(1),最坏O(n)采用哈希表实现
unordered_set/unordered_multisetO(1),最坏O(n)O(1),最坏O(n)O(1),最坏O(n)采用哈希表实现

容器迭代器

|容器|容器上的迭代器类别| |vector|随机访问| |deque|随机访问| |list|双向| |set/multiset|双向| |map/multimap|双向| |stack|不支持迭代器| |queue|不支持迭代器| |priority_queue|不支持迭代器|

最近更新于