📜  C++ STL中的容器(标准模板库)

📅  最后修改于: 2021-05-30 03:47:42             🧑  作者: Mango

容器是一个保存器对象,用于存储其他对象(其元素)的集合。它们被实现为类模板,这在作为元素支持的类型上提供了极大的灵活性。

容器管理其元素的存储空间,并提供直接或通过迭代器(具有与指针相似的属性的引用对象)访问它们的成员函数。

序列容器

序列容器实现了可以顺序访问的数据结构。

  • 数组:静态连续数组(类模板)
  • 向量:动态连续数组(类模板)
  • deque:双端队列(类模板)
  • forward_list:单链接列表(类模板)
  • list:双链表(类模板)

关联容器

关联容器实现可以快速搜索的排序数据结构(O(log n)复杂度)。

  • 设置:唯一键的集合,按键排序
    (课程模板)
  • 映射:键-值对的集合,按键排序,键是唯一的(类模板)。
  • 多集:键集合,按键排序(类模板)
  • multimap:键/值对的集合,按键排序
    (课程模板)

无序关联容器

无序关联容器实现了可以快速搜索的未排序(哈希)数据结构(O(1)摊销,O(n)最坏情况的复杂性)。

  • unordered_set:唯一键的集合,由键散列。 (课程模板)
  • unordered_map:键值对的集合,按键散列,键是唯一的。 (课程模板)
  • unordered_multiset:键集合,按键散列(类模板)
  • unordered_multimap:键-值对的集合,按键散列(类模板)

容器适配器

容器适配器为顺序容器提供了不同的接口。

  • 堆栈:调整容器以提供堆栈(LIFO数据结构)(类模板)。
  • 队列:调整容器以提供队列(FIFO数据结构)(类模板)。
  • priority_queue:调整容器以提供优先级队列(类模板)。

自适应容器和无序容器的流程图

序列容器和有序容器的流程图

更多有用的链接

  • 有关C++ STL的最新文章
  • 有关C++ STL的最新文章
  • 编码实践平台
  • 多项选择题
  • C++类别中的所有文章
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”