目录
STL介绍
STL版本
STL六大组件
STL缺陷
STL介绍
STL-standard template libaray 标准模板库;
STL是C++标准库的重要组成部分,不仅是一个可复用的组件库,且是一个包含数据库结构与算法的软件框架;
STL版本
原始版本
- Alexander Stepanov、Meng Lee,惠普实验室完成;
- HP版本,所有STL实现版本的始祖;
P.J.版本
- 由P. J. Plauger开发,继承自HP版本;
- 被Windows Visual C++采用,不能公开或修改;
- 缺陷,可读性较低,符号命名怪异;
RW版本
- Rouge Wage公司开发,继承自HP版本;
- 被C+ + Builder 采用,不能公开或修改,可读性一般;
SGI版本
- Silicon Graphics Computer Systems,Inc公司开发,继承自HP版本;
- 被GCC(linux)采用,可移植性好,可公开、修改甚至贩卖;
- 命名风格和编程风格上,阅读性非常高;
STL六大组件
仿函数(Function Object):greater、less、...
算法(Algorithm):find、swap、reverse、sort、merge、...
迭代器(Iterator):iterator、const_iterator、reverse_iterator、const_reverse_iterator
空间配置器(Allocator):allocator
容器(Container):string、vector、list、deque、map、set、multimap、multiset
配接器(Adaptor):stack、queue、priority_queue
STL缺陷
- STL库更新太慢;
- STL目前都不支持线程安全,并发环境下需自己加锁,且锁的粒度较大;
- STL极度追求效率,导致内部比较复制,如类型萃取、迭代器萃取;
- STL的使用会有代码膨胀的问题,如使用vector
/vector /vector 这样会生成多份代码,这是模板语法本身导致的;



