免费网站建设无广告,网站开发 华景新城,怎样建设个自己的网站,腾讯网页游戏平台文章目录 1. 什么是STL2. STL的版本3. STL的六大组件4. 如何学习STL5.STL的缺陷 1. 什么是STL STL(standard template libaray-标准模板库)#xff1a;是C标准库的重要组成部分#xff0c;不仅是一个可复用的组件库#xff0c;而且是一个包罗数据结构与算法的软件框架。 2. … 文章目录 1. 什么是STL2. STL的版本3. STL的六大组件4. 如何学习STL5.STL的缺陷 1. 什么是STL STL(standard template libaray-标准模板库)是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。 2. 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 SystemsInc公司开发继承自HP版 本。被GCC(Linux)采用可移植性好
可公开、修改甚至贩卖从命名风格和编程 风格上看阅读性非常高。我们后面学习STL要阅读部分源代码
主要参考的就是这个版本。
3. STL的六大组件 4. 如何学习STL 简单总结一下学习STL的三个境界能用明理能扩展 。
5.STL的缺陷
STL库的更新太慢了。这个得严重吐槽上一版靠谱是C98中间的C03基本一些修订。C11出
来已经相隔了13年STL才进一步更新。 STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。 STL极度的追求效率导致内部比较复杂。比如类型萃取迭代器萃取。 STL的使用会有代码膨胀的问题比如使用vector/vector/vector这样会生成多份代码当然这是模板语
法本身导致的。