Halo
发布于 2022-06-10 / 108 阅读 / 0 评论 / 0 点赞

stl 常见容器

vector array

数组支持随机访问,根据下标随机访问的时间复杂度为O(1)

  • vector 连续的内存空间来存储元素,大小可以改变。swap 操作是将引用进行交换,效率高,其迭代器指向原来的容器
  • array 连续的内存空间来存储元素,大小固定。swap 操作是进行值的交换,效率低,且迭代器仍指向原来的容器。

set, multiset, map, multimap

内部实现都是红黑树, 红黑树是一种有序树,查找的时间复杂度为logN

  • set中, 元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的
  • multiset容器当中存储的元素是可以重复的
  • map中, 键值key通常用于排序和唯一地标识元素,而值value中存储与此键值key关联的的内容
  • multimap 是一种特殊的 map,key是可以重复的

unordered_set,unordered_map

内部实现了一个 哈希表,其元素的排列顺序是无序的, 查找时间复杂度是O(n)

  • unordered_set 用法和set 用法一致
  • unordered_map 用法和 map 一致

评论