STL简介

在了解了C++中的类和对象以及内存管理基本的知识后接下来我们将进入STL 的学习,在此我们在本篇会先了解STL的由来以及大致了解STL 的组成,接下来在之后的篇章中我将依次来学string、vector等,学习完STL之后相信你会进一步了解C++的魅力所在。接下来就开始STL初步的了解吧!


1.什么是STL

STL (standard template libaray -标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2. STL的版本

那么在了解了STL是什么后接下来来看看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要阅读部分源代码,主要参考的就是这个版本。

3. STL的六大组件

4. STL的重要性

在了解STL之前在之前我们要用到栈或者是队列等数据结构时,都需要我们自己先实现,这在之前的二叉树层序遍历,在实现非递归版本的快速排序等都能感受到要自己先实现相应的数据结构就十分的繁琐,那么在学习了STL之后我们就可以在程序添加相应的头文件之后就可以直接使用相应的数据结构了,这就相当于之前我们是造车要所有的零件都要自己制造并且之后还有完成组装的工作,而有了STL我们就相当于从其他的工厂得到对应的零件,之后我们只要完成组装的工作即可

并且STL在C++中有着非常重要的地位,网上有句话说:"不懂STL,不要说你会C++"。STL是C++中的优秀作品,有了它的陪伴,许多底层的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快速开发。

在笔试和面试当中STL也非常的重要,来看以下的示例:

1. 在笔试中:
把二叉树打印成多行_牛客题霸_牛客网 (nowcoder.com)
重建二叉树_牛客题霸_牛客网 (nowcoder.com)
用两个栈实现队列_牛客题霸_牛客网 (nowcoder.com)

2. 在面试中

5. 如何学习STL

简单总结一下:学习STL的三个境界:能用,明理,能扩展 。

相关推荐
β添砖java3 分钟前
2025最新快速构建企业级虚拟专用网络环境学习笔记
笔记·学习
cookies_s_s3 小时前
C++ 字符串动态创建对象 -- 工厂模式、自动注册、模板递归动态调用
服务器·开发语言·c++
王老师青少年编程3 小时前
2026年6月GESP真题及题解(C++七级):消消乐
数据结构·c++·算法·真题·gesp·2026年6月
海清河晏1113 小时前
数据结构 | 二叉搜索树
数据结构·c++·visual studio
盐焗鹌鹑蛋4 小时前
【C++】继承
开发语言·c++
会周易的程序员4 小时前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
WZF-Sang4 小时前
网络基础——2
服务器·网络·c++·学习·网络编程·php
心中有国也有家6 小时前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
-西门吹雪6 小时前
现代C++ 并发编程-学习指南
java·jvm·c++
New农民工6 小时前
射频芯片学习-ExpressLRS 对频流程分析
学习