C++STL容器

 C++
时间:

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 评论