前言:

在上节,我们简单的认识了模板的基本概念。今天我简单的给大家介绍一下关于 STL 。


目录

(一) 什么是STL

(二) STL的版本

(三) STL的六大组件

(四) STL的重要性

(五) 如何学习STL

(六)STL的缺陷

(七)总结


(一) 什么是STL

STL(standard template libaray-标准模板库)

  • 是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。

(二) 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要阅读部分源代码, 主要参考的就是这个版本。

(三) STL的六大组件


(四) STL的重要性

1. 在笔试中

二叉树层序遍历

重建二叉树

两个栈实现一个队列

2.在面试中

3. 在工作中

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

(五) 如何学习STL

这里推荐大家一本书,名为《STL原码剖析》

  • 这本书对我们学习有很大的帮助,但是这本书初期看会很“痛苦”,大家要做好心理准备哟!!!

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


(六)STL的缺陷

  • 1. STL库的更新太慢了。这个得严重吐槽,上一版靠谱是C++98,中间的C++03基本一些修订。C++11出 来已经相隔了13年,STL才进一步更新。
  • 2. STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。
  • 3. STL极度的追求效率,导致内部比较复杂。比如类型萃取,迭代器萃取。
  • 4. STL的使用会有代码膨胀的问题,比如使用vector/vector/vector这样会生成多份代码,当然这是模板语 法本身导致的。

(七)总结

对于 STL的内容还是很重要的,不管是在笔试还是咋面试中。因此,STL对我们“ 程序猿”来说非常值得花时间去探索!!!

【C++】—— STL简介(了解)相关推荐

  1. C++标准库与STL简介

    文章目录 1 C++标准库 1.1 C++标准库简介 2 STL简介 2.1 STL介绍 2.2 容器简介 1 C++标准库 重复发明轮子并不是一件有创造性的事,站在巨人的肩膀上解决问题会更加有效! ...

  2. C++ STL简介(转)

    一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R ...

  3. STL源码剖析(一)STL简介

    STL源码剖析(一)STL简介 文章目录 STL源码剖析(一)STL简介 一.STL概述 二.STL六大组件 2.1 容器(containers) 2.2 算法(algorithms) 2.3 迭代器 ...

  4. ACM入门及STL简介(转)

    第一章 新手入门 1.      ACM国际大学生程序设计竞赛简介 1)      背景与历史 1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕. ...

  5. ACM入门及STL简介

    1.       ACM 国际大学生程序设计竞赛简介 1)       背景与历史 1970 年在美国TexasA&M 大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕.1977 ...

  6. 学习->C++篇五:模板与STL简介

    目录 1. 函数模板 2. 类模板 3.模板的语法 (1)非类型模板参数 (2)   模板的特化 (3)模板的分离编译 4.STL简介 1. 函数模板 模板是泛型编程的基础,一个模板就是一个创建类或函 ...

  7. 【C++】STL简介 -- string 的使用及其模拟实现

    文章目录 一.STL 简介 1.什么是 STL 2.STL 的版本 3.STL 的六大组件 4.STL 的重要性 5.如何学习 STL 二.string 类的使用 1.什么是 string 2.VS ...

  8. 【C++】模板初阶STL简介

    今天,你内卷了吗? 文章目录 一.泛型编程 二.函数模板(显示实例化和隐式实例化) 1.函数模板格式 2.单参数模板 3.多参数模板 4.模板参数的匹配原则 三.类模板(没有推演的时机,统一显示实例化 ...

  9. STL简介string的使用及其模拟实现

    文章目录 一.STL简介 1.什么是STL 2.STL的版本 3.STL的六大组件 4.STL的重要性 5.如何学习STL 二.标准库中的string类 1.string类 2.string类的常用接 ...

  10. 学习笔记:C++初阶【C++入门、类和对象、C/C++内存管理、模板初阶、STL简介、string、vector、list、stack、queueu、模板进阶、C++的IO流】

    文章目录 前言 一.C++入门 1. C++关键字 2.命名空间 2.1 C语言缺点之一,没办法很好地解决命名冲突问题 2.2 C++提出了一个新语法--命名空间 2.2.1 命名空间概念 2.2.2 ...

最新文章

  1. 使用Boost的Serialization库序列化STL标准容器
  2. 查看一个索mysql_如何查看MySQL索引
  3. 干货 | 携程是如何做AB实验分流的
  4. Java实现找出数组中重复次数最多的元素以及个数
  5. 【实例图文详解】OAuth 2.0 for Web Server Applications
  6. AI基础:一文看懂BERT
  7. ITK:Perona Malik在灰度图像上的各向异性扩散
  8. vue获取DOM元素并设置属性
  9. 终极结束进程方法API
  10. html中设置边框形状为齿状,在CSS中制作锯齿状的三角形边框
  11. 医疗大数据的风险及应对方法
  12. TexturePacker 图片打包工具讲解与使用并且批处理打多包以及资源加密
  13. 联想电脑安装黑苹果全教程
  14. case 书写的要求与思路
  15. oracle同义词对象,oracle数据库对象-同义词
  16. matlab第三章笔记
  17. Laravel Scout 包在 Elasticsearch 中的使用记录
  18. android adc,Android配置ADC接口
  19. python 字体颜色改变
  20. soot基础 -- 常用参数配置

热门文章

  1. Console.read()、Console.readline()、Console.readkey()和Console.Write、Console.Writeline()的意思
  2. linux 文件末尾追加内容
  3. 远程调用-Sun RPC
  4. 视图库——公安视频侦查数据处理应用中心
  5. 一文读懂设计模式--策略模式
  6. 7_5.移动IP网络
  7. python实例属性
  8. SSM智能家居产品销售管理毕业设计源码161618
  9. ubuntu机械盘写入cannot be copied because you do not have permissions to create it in the destination.
  10. 单片机中常用的串口通信协议帧