六大组件
1 容器class template
各种数据结构用来存放数据
2 算法fuction template
3 迭代器class template
泛型指针。共五种类型。
从实现角度,迭代器是一种将operator*、operator->、operator++、operator--等实现重载的class template。
原生指针也是一种迭代器。
4 仿函数
重载了operator()的class或者class template。
5 适配器
修饰容器或仿函数或迭代器接口的东西
6 配置器class template
负责空间配置与管理。
从实现角度,配置器是一个实现动态空间配置、空间管理、空间释放的class template。
六大组件交互关系
容器通过配置器allocator获得数据存储空间,算法通过迭代器获取容器中的内容,仿函数协助算法完成不同策略变化,适配器修饰仿函数。
C++语法
1 临时对象 仿函数 ()
一个class template 重载operator()之后,可以用类名()实现一个临时对象。
2 静态常量整数成员 在class内部直接初始化
static const int/long/char
3每个迭代器必须实现: 前++、后++、前--、后--、*
4 前闭后开区间,迭代器last指向最后一个元素下一个位置