一、容器(containers)
各种数据结构,用来存放数据;
从实现的角度看,STL是一种class template;
从体积而言,这一部分很像冰山在海面上的比率
1、顺序容器 底层
vector 矢量容器 数组 #include<vector>
list 双向链表 双向循环链表(环状) #include<list>
deque 双端队列容器 双端队列 #include<deque>
2、关联容器
set 单重集合 红黑树 #include<set>
multiset 多重集合
map 单重映射 红黑树 #include<map>
multimap 多重映射
3、容器适配器
stack 栈 #include<stack>
queue 队列 #include<queue>
priority_queue
二、泛型算法(algorithms)
#include<algorithm>
各种常用算法如:sort、search、copy、erase
从实现的角度看:STL算法是一种function template
三、迭代器(iterators)
#include<iterator>
扮演容器和算法之间的胶合剂,是所谓的“泛型指针”
从实现的角度看,迭代器是一种oprator*,operator->,operator++,operator—等指针相关操作予以重载的class template。
所有STL容器都附有自己专属的迭代器
正向迭代器、双向迭代器(list)、
函数对象 仿函数(functors)
#include<functional>
行为类似函数,可作为算法的某种策略
从实现的角度看,仿函数是一种重载了operator()的class或class template.一般函数指针可视为狭义的仿函数
五、接配器(adapters)
一种用来修饰容器和仿函数或迭代器接口的东西
六、空间配置器(allocator)
负责空间配置与管理
从实现的角度看,配置器是一个实现了动态空间配置、空间管理、空间释放的class template