STL容器特点对比
其他
2019-01-21 01:03:03
阅读次数: 0
1. 分类
- 序列式容器(sequential container)
vector, list, array, deque, forward_list
- 关联式容器(associative container)
map, multimap, set, multiset, unordered_map, unordered_multimap, unordered_set, unordered_multiset
- 适配器(adaptor)
stack, queue, priority_queue
2. 特点对比
|
内存空间 |
查询 |
插入删除 |
array |
静态连续空间 |
O(1) |
不允许 |
vector |
动态连续空间 |
O(1) |
自动扩展size,但需要copy元素,O(n)(从末尾插入/删除则O(1)) |
list |
动态非连续空间 |
O(n) |
O(1) |
deque |
动态(分段)连续空间 |
小于vector的O(1) |
扩展size不需要copy元素,从头、尾两端插入/删除O(1) |
stack |
动态空间 |
只能看top() |
FILO O(1) |
queue |
动态空间 |
只能看top() |
FIFO O(1) |
priority_queue |
动态空间 |
只能看top() |
同queue O(1) |
map |
动态空间 |
O(ln(n)) |
插入 O(ln(n)) |
set |
动态空间 |
O(ln(n)) |
插入 O(ln(n)) |
3. 底层实现(数据结构)
|
底层数据结构 |
vector |
array |
list |
double cycled linked list |
deque |
map |
stack |
list/deque |
queue |
list/deque |
priority_queue |
vector |
map |
RB-tree |
set |
RB-tree |
unordered_map |
hash_table |
set |
hash_table |
转载自blog.csdn.net/weixin_43762200/article/details/85319689