STL是一个标准规范,它只是为容器、迭代器和泛型算法等组件定义了一整套统一的上层访问接口及各种组件之间搭配运用的一般规则,而没有定义组件底层的具体实现方法。
STL主要包括下面这些组件:I/O流,string类、容器类(Container)、迭代器(Iterator)、存储分配器(Allocator)、适配器(Adapter)、函数对象(Functor)、泛型算法(Algorithm)、数值运算、国际化和本地化支持、以及标准异常类等。
其中最重要的组件是:容器、存储分配器、迭代器、泛型算法、函数对象和适配器,俗称“六大组件”.
一、STL头文件分布
只要有一系列元素构成的结构原则上都可以应用泛型算法,像C++/C数组、字符串、I/O流等特殊的容器也可以使用某些泛型算法--它们定义在头文件<algorithm>和<utility>.
迭代器就是用来遍历元素序列或元素集合的“通用指针”,但是每一种容器都定义了合适自己使用的迭代器,那些具有特殊功能的迭代器,如输入/输出迭代器,插入迭代器,反向迭代器等都是迭代器适配器,定义在头文件<iterator>.
二、容器设计原理
容器对象:容器本身也是C++类的对象,例如std::vector<T>
容器元素对象:指容器对象内存储的数据元素,可以是内置类型的对象,也可以是自定义数据类型的对象。
原文:http://www.cnblogs.com/zhehan54/p/5281620.html