探索C嘎嘎:初步接触STL

#1024程序员节|征文#

前言:

在前文小编讲述了模版初阶,其实讲述模版就是为了给讲STL提前铺垫,STL是C++中很重要的一部分,各位读者朋友要知道它的份量,下面废话不多说,开始走进STL的世界。

目录:

1.STL是什么

2.STL的版本

3.STL的六大组件

4.STL的重要性

5.如何学习STL

正文:

1.STL是什么

STL(standard template libaray-标准模板库)是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且还是一个包罗数据结构和算法的软件框架。简单来说,STL包含了很多东西,其中就有小编之前讲过的栈,队列等等一系列数据结构,是一个很全能的库,等小编之后深入讲述里面的内容读者朋友就知道为什么我说它是全能的了,下面我们来说说STL的版本。

2.STL的版本

下面这些版本都是小编从网上查询的,如果有错误的话小编会及时更正的。

2.1.原始版本

Alexander Stepanov、Meng Lee在惠普实验室(这里的惠普实验室就是如今电脑品牌惠普(HP)的下属实验室)完成的原始版本,本着开源的精神(小编很敬佩这些拥有开源精神的大佬们),他们声明允许任何人任意运用。拷贝。修改。传播,商业使用这些代码,无须付费。唯一的条件就是也需要向原始版本一样做开源使用。HP-所有STL实现版本的始祖(真就是老祖宗)。

2.2.P.J.版本

由P.J.Plauger开发,继承自HP版本,被Windows Visual C++采用,不能公开或者修改;缺点:可读性比较低,符号命名比较怪异。

2.3.RW版本

由Rouge Wage公司开发,继承自HP版本,被C++ Builder采用(这个编译器以前比较出名,但是后来没落了),不能公开或者修改,可读性一般。

2.4.SGL版本

由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版本,被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖、从风格命名和编程风格看,阅读性非常高。小编后来的文章关于STL的就是要阅读这部分源代码,主要参考的也会是这个版本。

3.STL的六大组件

这六大组件小编就用图片展示了:

以后小编就要围绕上面六个组件进行展开讲解。

4.如何学习STL

对于如何学习STL,小编本来想要引用一位名人说过的话来进行讲述,但是我看很多相关文章都涉及到了这句话,小编在说就显得重复了,所以小编认为,学习好STL,是分为三步的,第一步就是熟用C++,如果STL都不会使用的话,那么怎谈学习好这三个字,所以熟用STL就是学习好STL的第一步;第二步了解泛型技术的内涵与STL的学理乃至作品,对于这一步,其实就是我们要依靠前人走过的路了,我们需要理解前人对于泛型技术的内涵的讲述,了解他们通过自己的学习STL凝结而成的作品,这里就比如侯捷老师的《STL源码剖析》等等一系列作品,我们在熟悉使用STL后就要知道STL的内涵到底是什么,它里面的一些功能是如何实现的;第三步就是扩充STL,我们已经熟用了STL,了解了STL的内涵,下面就要我们自己去扩充STL了,这一步的实现其实是很困难的,小编认为自己大学这几年是达不到这个境界的,这等境界也许以后会在工作中开始慢慢的开始提高,小编最大的希望就是完成前两步就足矣。这便是学习STL的三步,简单来说,学习STL的三个境界,就是:能用,能明理,能扩展,做好这三步,STL便是学习到了精髓。

5.总结

以上便就是本篇文章所要讲述的内容,本文很短,跟水文章一样(我绝对不是为了水文章而写的⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄),但是其实本文仅仅就是STL的简介罢了,以后我所写的内容就是文章所提及的内容,学C++之路,任重而道远,希望以后我不会中途放弃,如果文章有错误,请在评论区指出,我定会及时更正,那么,我们下一篇文章见啦!

相关推荐
程序猿阿伟6 分钟前
《C++中的魔法:实现类似 Python 的装饰器模式》
java·c++·装饰器模式
Mr. zhihao8 分钟前
装饰器模式详解:动态扩展对象功能的优雅解决方案
java·开发语言·装饰器模式
zyhomepage8 分钟前
科技的成就(六十四)
开发语言·人工智能·科技·算法·内容运营
百流12 分钟前
Pyspark中pyspark.sql.functions常用方法(4)
1024程序员节
Ethan Wilson15 分钟前
C++/QT可用的websocket库
开发语言·c++·websocket
qq210846295315 分钟前
【Ubuntu】Ubuntu22双网卡指定网关
1024程序员节
YueTann33 分钟前
APS开源源码解读: 排程工具 optaplanner II
1024程序员节
kinlon.liu41 分钟前
安全日志记录的重要性
服务器·网络·安全·安全架构·1024程序员节
爱编程— 的小李1 小时前
开关灯问题(c语言)
c语言·算法·1024程序员节
小宇1 小时前
The valid characters are defined in RFC 7230 and RFC 3986
java·开发语言·后端·tomcat