个人不良信息举报网站,怎样建一个自己的网站,网站建设自学网,做论坛网站怎么赚钱吗这里写自定义目录标题 一、什么是STL二、STL的版本1. 原始版本2. P. J. 版本3. RW版本★ 4. SGI版本 三、STL的六大组件四、STL的重要性五、如何学习STL六、STL的缺陷 一、什么是STL
STL ( standard template libaray - 标准模板库 )#xff1a;是C标准库 的重要组成部分是C标准库 的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。 二、STL的版本
1. 原始版本
Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本本着开源精神他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本–所有STL实现版本的始祖。
2. P. J. 版本
由P. J. Plauger开发继承自HP版本被Windows Visual C采用不能公开或修改缺陷可读性比较低符号命名比较怪异。
3. RW版本
由Rouge Wage公司开发继承自HP版本被C Builder 采用不能公开或修改可读性一般。
★ 4. SGI版本
由Silicon Graphics Computer SystemsInc公司开发继承自HP版 本。被 GCC(Linux) 采用可移植性好可公开、修改甚至贩卖从命名风格和编程 风格上看阅读性非常高。我们后面学习STL要阅读部分源代码要参考的就是这个版本。 三、STL的六大组件 四、STL的重要性 在笔试中 二叉数层序打印 重建二叉树 两个栈实现一个队列 在面试中 在工作中 网上有句话说“不懂STL不要说你会C”。STL是C中的优秀作品有了它的陪伴许多 底层的数据结构 以及算法 都不需要自己重新造轮子站在前人的肩膀上健步如飞的快速开发。 五、如何学习STL 六、STL的缺陷
STL库的更新太慢了。 这个得严重吐槽上一版靠谱是C98中间的C03基本一些修订。C11出来已经相隔了13年STL才进一步更新。STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。STL极度的追求效率导致内部比较复杂。 比如类型萃取迭代器萃取。STL的使用会有代码膨胀的问题比如 使用vector/vector/vector这样会生成多份代码当然这是模板语法本身导致的。