STL即标准模版库,是C++标准库的一个重要组成部分,它由Stepanov and Lee等人最先开发,它是与C++几乎同时开始开发的;一开始STL选择了Ada作为实现语言,但Ada有点不争气,最后他们选择了C++,C++中已经有了模板。STL又被添加进了C++库。
STL又有六大组件:容器、算法、迭代器、仿函数、适配器、空间分配器。
容器-----用于装各种数据结构,数组、链表、树还有图等
算法-----用于search、sort等功能
迭代器----现阶段可以看成指针,用于算法和容器的连接
仿函数---相当于C语言的回调函数
以下俩个暂时没理解
适配器---???
空间分配器----(malloc/free?new/delete???)
STL引入C++后,跟C++的关系如下图所示:
不同时期STL的版本:
HP-STL:第一个STL的实现版本
P.J.Plauger STL:属于个人作品,由P.J.Plauger本人实现,是HP STL的一个继承版本
Rouge Wave STL:由Rouge Wave公司实现,也是HP STL的继承版本,被C++ Builder使用
STLport:主要把SGI STL的基本版本移植到VC++和C++ Builder上
SGI STL:在GCC采用,在linux上性能出色且开源(在http://www.sgi.com可下载源代码)
STL家族图谱如下:
转自:http://www.cnblogs.com/tongdh/archive/2012/12/31/2840329.html