STL 是建立在泛化上的,数组泛化为容器,参数化了所包含的对象的类型。函数泛化为算法,参数化了所用的迭代器类型。指针泛化为迭代器,参数化了所指向对象的类型。
泛化继续,独立的容器类型泛化为序列或关联容器。标准的内存相邻的容器都提供随机访问迭代器,标准的基于节点的容器都提供双向迭代器。序列容器支持push_front 或 push_back,但关联容器不支持。关联容器提供对数时间复杂度的 lower_bound、upper_bound 和 equal_range 成员函数。
随着泛化的继续,努力去写 “ 容器无关的代码 ”,可能是出于泛化的目的,却几乎总会造成麻烦。