一、STL介绍
Standard Template Library,标准模板库,是C++的标准库之一,一套基于模板的容器类库,还包括许多常用的算法,提高了程序开发效率和复用性。STL包含6大部件:容器、迭代器、算法、仿函数、适配器和空间配置器。
- 容器:容纳一组元素的对象。
- 迭代器:提供一种访问容器中每个元素的方法。
- 函数对象:一个行为类似函数的对象,调用它就像调用函数一样。
- 算法:包括查找算法、排序算法等等。
- 适配器:用来修饰容器等,比如queue和stack,底层借助了deque。
- 空间配置器:负责空间配置和管理。
二、容器
序列容器:
vector:可变大小的数组。支持快速随机访问,除了尾插和尾删,其他情况会比较慢
deque:双端队列。支持快速随机访问,头插(删)和尾插(删)的速度很快。
list:双向链表。支持双向顺序访问。在list任何位置删插都很快
排序容器:
map/multimap: 有序哈希表。map中元素默认是从小到大排序好的。底层是红黑树。访问快, 占用内存小
set/multiset:同map,只不过set元素只有一个,而map是元素对
哈希容器
unordered_map:无序哈希表。底层是哈希表实现方式。插入快。
unordered_set:同上。
2.1