1、什么是STL?
在博主还在学习C语言
的时候就已经听说过STL
的大名了,C++
本来可以在94
年发布的,但由于中途发现了STL(由惠普实验室研发)
,C++
的研发组发现STL
相当有用,可以让C++
提高一个等级,所以又花了4
年的时间加入了STL
,最终C++
在98
年投入使用。
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 Systems
,Inc
公司开发,继承自HP
版本。被GCC(Linux)
采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程风格上看,阅读性非常高。
3、STL的六大组件
4、STL的重要性
STL 是 C++
程序员的核心竞争力:
- 笔试中: 是快速解题的
“军刀”
,需掌握高频容器 / 算法
的组合使用; - 面试中: 是区分初级与资深程序员的
“试金石”
,需深挖底层原理(如数据结构特性、性能瓶颈)
; - 工作中: 是工程化开发的
“效率引擎”
,需结合业务场景选择最优工具(原生 STL 或优化库如 Abseil/folly)
。
网上有句话说:“不懂STL,不要说你会C++”
。STL
是C++
中的优秀作品,有了它的陪伴,许多底层的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快速开发。
5、 学习STL的三重境界
网图:
我认为这三个境界很有辨识度,第一层境界是我们会简单使用STL,第二层境界是了解STL的底层原理,第三层境界是能够扩展STL,能够补充轮子。
总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~