容器是一个保存器对象,用于存储其他对象(其元素)的集合。它们被实现为类模板,这在作为元素支持的类型上提供了极大的灵活性。
容器管理其元素的存储空间,并提供直接或通过迭代器(具有与指针相似的属性的引用对象)访问它们的成员函数。
序列容器
序列容器实现了可以顺序访问的数据结构。
- 数组:静态连续数组(类模板)
- 向量:动态连续数组(类模板)
- 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等的更多准备工作,请参阅“完整面试准备课程” 。