序列容器:
在标准模板库中,它们引用容器类模板的组,我们使用它们来存储数据。顾名思义,一个常见的属性是元素可以顺序访问。
以下每个容器使用不同的算法进行数据存储,因此对于不同的操作,它们具有不同的速度。并且容器中的所有元素都应该是同一类型。
- array =实现不可调整大小的数组。
例如:int arr [10]; //固定大小为10的数组。 - vector =它以更快的随机访问速度实现动态数组,这些数组非常有用,因为它们可以调整大小。
例如:vectorv; // int类型的向量 - 出队(dequeue)用于实现具有更快的随机访问的双端队列
例如:出队dq; //字符类型出队 - forward_list:实现单链表。
例如:forward_list fl; // int类型的forward_list。 - list:实现双重链接列表。
例如:清单l; // int的列表
关联容器:
在标准模板库中,它们是指用于实现关联数组的一组类模板。它们用于存储元素,但对其元素有一些约束。
这些容器的两个重要特征是
- 存在一个钥匙。对于地图和设置,键是唯一的。如果是多图和多集,则允许键的多个值。如果是map和multimap,则有键/值对。在设置的情况下,只有键。
- 元素遵循严格的弱排序。 。
以下是关联容器下的内容
- 地图:在这里,我们创建的每个键都必须是唯一的。
例如:map geek_no; //这里的第一个数据类型是键,第二个数据类型是值 - set:这里我们创建的键也必须是唯一的,但是与map的一个重要区别是这里的值本身是键,因此这意味着set中的元素是唯一的,即没有重复。
例如:set s; //值本身就是键。 - 多重映射:一样的地图,但这里的关键不必是唯一的。
例如:multimap geeks_no; - 多集:同组,但这里uniquness元素并不重要,即我们可以有不同设定多个相同的元素时。
例如:多组标记;
序列与关联(明智的方式)
顺序容器
- 简单插入需要固定的时间。
- 前台具有固定的摊销时间。
- 在中间插入非常慢。
在关联容器中,大多数复杂性是对数形式的
- 插入元素为O(log n)
- 删除元素O(log n)
- 搜索元素O(log n)
- 递增或递减迭代器O(1)(摊销)
- 插入中间更快。
无序关联容器
请注意,每个关联容器都有无序的关联容器,其中包含没有任何特定顺序的元素。无序关联容器的示例是unordered_set,unordered_map,unordered_multimap,unordered_multiset。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。