当前位置: 首页 > news >正文

STL相关简介

string

看到这个词,相信大家一定都很好奇什么是string,它有什么作用呢?今天,就让我们一起来了解一下关于string的简介吧~

目录

string

1. 什么是STL

2. STL的版本

3. STL的六大组件

4. STL的重要性

5. 如何学习STL

6.STL的缺陷


1. 什么是STL

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的重要性

SLT在笔试与面试中占据着举足轻重的地位,是我们日后发展的重要组成。有了它,我们便可以不再过多依赖底层的数据结构,相当于直接站在巨人的肩膀上看世界~

5. 如何学习STL

学习STL的过程就好比是一个婴儿蹒跚学步到健步如飞的过程。

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

6.STL的缺陷

1. STL库的更新太慢了。

2. STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。 3. STL极度的追求效率,导致内部比较复杂。比如类型萃取,迭代器萃取。

4. STL的使用会有代码膨胀的问题,比如使用vector/vector/vector这样会生成多份代码,当然这是模板语法本身导致的。

结尾

以上便是本期的全部内容,接下来我们将进入STL的具体学习,敬请期待哦~


http://www.mrgr.cn/news/28892.html

相关文章:

  • 现代无线通信接收机架构:超外差、零中频与低中频的比较分析
  • 数据中台解决方案
  • 数据分析那些事儿——关于A/B实验
  • iOS开发 swift系列---一个视图数据修改后,如何刷新另外一个视图
  • CAN总线数据帧格式详细介绍
  • 【软考】系统架构设计师-计算机系统基础(1):计算机硬件
  • 削峰+限流:秒杀场景下的高并发写请求解决方案
  • Vscode运行Python无法导入自己编写的包的解决方法
  • 【数据结构初阶】顺序结构二叉树(堆)接口实现超详解
  • Flet全平台开发:软件开发界勇士为Python语言补短板的一次极具挑战性的尝试、冲刺和华丽亮相
  • AWS认证SAA-C03每日一题
  • python中Web开发框架的使用
  • Java4----String
  • 绿咖啡豆缺陷检测系统源码分享
  • (十六)、把镜像推送到私有化 Docker 仓库
  • c++249多态
  • 以root用户登陆ubuntu的桌面环境
  • win+linux平台C语言获取进程的线程数量
  • Java 语言的虚拟机风格
  • 移动应用开发实验室web组js第一次考核
  • 设计模式中工厂模式的C语言实现
  • 网络安全笔试练习题,据说10分钟内答对的都是高手!
  • 算法题之回文子串
  • 【C++】——优先级队列和容器适配器
  • 算法题总结(一)——二分查找专题
  • 【Linux:命名管道】