C++ 标准程序库(Standard Template Library)是一个伟大的作品,整个库没有太多的OO(Object Oriented),但无处不存在GP(Generic Programming)

STL分为6大组件

1. 容器 containers

如,vector, list, deque, set, map用来存放数据

STL —— class template

2. 算法 algorithms

如,sort, search, copy, erase等

STL —— function template

3. 迭代器 iterators

扮演容器与算法之间的胶合剂,是所谓的“泛型指针”

共有5种类型。

STL —— 将operator*等指针重载的class template

4. 仿函数 functors

行为类似函数,重载operator()的class 或 class template

5. 配接器 adapters

修饰 容器 或 仿函数 或 迭代器 接口的东西。

如,queue,stack。看似容器,实际上是容器配接器。因为他们的底层全部借助于deque供应。

同样有functors adapters和iterators adapters

6. 配置器 allocators

负责空间配置与管理

实现了动态空间配置,空间管理,空间释放的class template

评论