STL库的底层实现
-
顺序容器
- array数组
- vector向量
- deque双向队列
- list双向链表
- forward_list前向链表
-
关联容器
- map 关联数组key value
- map、multimap 排序实现
- unordered_map、unordered_multimap 哈希实现
- set 只保留关键子key
- set、multiset 排序实现
- unordered_set、unordered_multiset 哈希实现
- map 关联数组key value
-
容器适配器
- stack 栈
- queue 队列
- priority_queue 前向队列
各个容器的时间复杂度
操作 | 访问,一般是指下标[n] 访问,关联容器应该是用key |
push_back() |
push_front() |
insert() |
pop_back() |
pop_front() |
erase() |
find() |
---|---|---|---|---|---|---|---|---|
顺序容器 | ||||||||
list | O ( n ) O(n) O(n) | O ( 1 ) O(1) O(1) | O ( 1 ) O(1) O(1) | O ( 1 ) O(1) O(1),但是确定迭代器的位置需要 O ( n ) O(n) O(n) | O ( 1 ) O(1) O(1) | O ( 1 ) O(1) O(1) | O ( 1 ) O(1) O( |