C++STL容器
C++
时间: 2020-04-13T07:14:03Z
STL 不同容器间的差异
|
Vector |
deque |
list |
set |
multiset |
map |
multimap |
存储结构 |
单端数组 |
双端数组 |
双向链表 |
二叉树 |
二叉树 |
二叉树 |
二叉树 |
是否为键值对 |
否 |
否 |
否 |
否 |
否 |
是 |
是 |
元素可重复 |
是 |
是 |
是 |
否 |
是 |
key值否 |
是 |
可随机存取 |
是 |
是 |
否 |
否 |
否 |
对key而言:不是 |
否 |
元素搜寻速度 |
慢 |
慢 |
非常慢 |
快 |
k快 |
对key而言:快 |
对key而言:快 |
元素安插移除 |
尾端 |
头尾两端 |
任何位置 |
不支持 |
不支持 |
不支持 |
不支持 |
Vector使用场景
- 需要开辟一段连续的内存空间,并支持随机访问,所以它的查找效率不高,在缺省情况下使用。
Deque使用场景
- 与Vector相似,它可以头部尾部插入和移除元素,并且容量比Vector大得多。
List使用场景
- List支持随机插入,删除,移动元素,不支持随机村粗,且搜索速度慢,用在经常变更数据,不经常查找的情况下使用。
set和multiset使用场景
- 经常以某个key值搜索元素,和大数据量的情况下使用更好。
map和multimap使用场景
- 使用key值搜索大数据量下使用,效率比Vector好很多,Vector最坏的情况是遍历完所有key.
0 评论