1,容器
1,vector
底层实现使用线性表,,
2,list
底层就是链表
3,deque
底层是双向的线性表,也就是双向接口,意思在头和尾都可以进行插入和删除操作。
4,map
底层是红黑树
5,set
底层是红黑树
2,算法
各种常用的算法,如sort,search,copy
3,迭代器
容器和算法之间的粘合剂,是所谓的泛型指针。
具体实现时,就是一个模板类,将operator -> operator * operator -- operator ++,等原生指针可以执行的操作符
进行重载,所有的STL容器都有自己的 专属迭代器,只有容器本身知道怎样遍历自己的元素。原生指针也是迭代器。
4,适配器
一种用来修饰 STL容器,迭代器和仿函数接口的工具,如,stack queue都不是实际的容器,只是经过适配器修饰的
deque。
5,配置器
负责空间的管理和配置,实现的角度来说,是定义一个动态空间配置 ,空间管理,空间释放的模板类。
6,仿函数
仿函数就是行为类似于函数,可作为某种算法策略。从实现的角度看,仿函数是重载了operator()的模板类。
一般的函数指针也是狭义的仿函数。
总结:容器通过配置器获得空间,算法通过迭代器操作容器元素,仿函数辅助算法完成不同的策略优化,