STL中的六大组件包括:容器、容器适配器、算法、迭代器、仿函数、空间配置器。
STL六大组件的相互关系:容器通过空间配置器取得数据存储空间;算法通过迭代器存取数据存储容器内容;仿函数可以协助算法完成不同的策略变化;空间适配器可以修饰或套接仿函数。
容器
下面我们总结容器这个组件。
纠错:multimap、multiset关键字可以重复。
1.vector
优点是访问元素效率高,因为是连续空间,所以内存使用率高,缓存使用率也高。缺点是中间位置插入和删除不方便,效率低。
2.list
优点是中间位置进行插入、删除方便,但访问效率不高。缺点是随机访问的效率低,需要遍历O(N)的时间复杂度。
3.双端队列的原理
所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候改变自身大小,完成了