STL基本概念
1、STL——standard template library 标准模板库
2、STL从广义上分为:容器(container) 算法(algorithm)迭代器(iterator)
3、容器和算法通过迭代器进行无缝连接。
4、STL几乎所有的代码都采用模板类或者模板函数
STL六大组件
STL大体分为6大组件:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器
1、容器:各种数据结构,如vector、list、deque、set、map等用来存放数据。
2、算法:各种常用的算法,如sort、find、copy、for_each等
3、迭代器:扮演了容器和算法之间的胶合剂
4、仿函数:行为类似函数,可作为算法的某种策略。
5、适配器:一种用来修饰容器或仿函数或迭代器接口的东西
6、空间配置器:负责空间的配置与管理
算法要通过迭代器才能访问容器中的元素
种类 | 功能 | 支持运算 |
---|---|---|
输入迭代器 | 对数据的只读访问 | 只读,支持++、==、!= |
输出迭代器 | 对数据的只写访问 | 只写,支持++ |
前向迭代器 | 读写操作、并能向前推进迭代器 | 读写,支持++、==、!= |
双向迭代器 | 读写操作、并能向前和后向操作 | 读写,支持++、- - |
随机迭代器 | 读写操作、可以以跳跃的方式访问任意数据,功能最强的迭代器 | 读写,支持++、- - 、[n] 、-n、< 、<=、>、>= |
常用的迭代器都为双向迭代器和随机访问迭代器