【C++】STL简介(了解)【STL的概念,STL的历史缘由,STL六大组件、STL的重要性、以及如何学习STL、STL的缺陷的讲解】

这里写自定义目录标题

  • 一、什么是STL
  • 二、STL的版本
      • 1. 原始版本
      • 2. P. J. 版本
      • 3. RW版本
      • ★ 4. SGI版本
  • 三、STL的六大组件
  • 四、STL的重要性
  • 五、如何学习STL
  • 六、STL的缺陷



一、什么是STL

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



二、STL的版本

1. 原始版本

Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本–所有STL实现版本的始祖。

2. P. J. 版本

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

3. RW版本

由Rouge Wage公司开发,继承自HP版本,被C+ + Builder 采用,不能公开或修改,可读性一般。

★ 4. SGI版本

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



三、STL的六大组件

在这里插入图片描述


四、STL的重要性

  1. 在笔试中
    二叉数层序打印
    重建二叉树
    两个栈实现一个队列

  2. 在面试中

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



五、如何学习STL

在这里插入图片描述



六、STL的缺陷

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红队攻防之隐匿真实IP

0x01 前言 安全态势日益严峻,各大组织普遍采用了综合的安全产品,如态势感知系统、WAF和硬件防火墙等,这些措施加大了渗透测试和攻防演练的难度。即使是一些基本的漏洞验证、端口扫描,也可能导致测试IP被限制,从而阻碍…

DFT新手教程:VASP中ISIF取值设置

新手初学VASP计算时首先接触到的就是结构优化的计算任务。 在结构优化中,INCAR中的关键参数包括 IBRION ,NSW,ISIF,EDIFF和EDIFFG 各个参数均可在vaspwiki查到可设置的参数以及该参数所具有的设置的含义。 https://www.vasp.at/…

佛罗里达大学利用神经网络,解密 GPCR-G 蛋白偶联选择性

内容一览:G 蛋白偶联受体 (GPCRs) 是一种将细胞膜外的刺激,传递到细胞膜内的跨膜蛋白,广泛参与到人体生理活动当中。近日,佛罗里达大学的研究者测定了 GPCRs 和 G 蛋白的结合选择性,并开发了预测二者选择性的算法&…

JVM简单了解内存溢出

JVM oracle官网文档:https://docs.oracle.com/en/java/javase/index.html 什么是JVM JVM(Java Virtual Machine)原名Java虚拟机,是一个可以执行Java字节码的虚拟计算机。它的作用是在不同平台上实现Java程序的跨平台运行,即使在不同的硬件…

MX6ULL学习笔记 (七) 中断实验

前言: 本章我们就来学习一 下如何在 Linux 下使用中断。在linux内核里面使用中断,不同于我们以往在别的裸机开发一样,需要进行各种寄存器的配置,中断使能之类的,而在Linux 内核中,提供了完善的中断框架…

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录 环境准备创建VPC 配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由 验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网 知识点参考资料 在《AWS攻略——…

java日历功能

java 日历功能 功能概述java代码打印结果 功能概述 输入年份和月份,打印该月份所有日期,头部信息为星期一至星期日 java代码 package com.java.core.demoTest; import java.util.Calendar; import java.util.Scanner;// 打印日历 public class Calend…

计算机网络之IP篇

目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗? 8.1、什么是 127.0.0.1 ? 8.2、为…

小程序1rpx边框不完美

问题展示 原因 rpx类似rem,渲染后实际转换成px之后可能存在小数,在不同的设备上多多少少会存在渲染的问题。而1rpx的问题就更加明显,因为不足1个物理像素的话,在IOS会进行四舍五入,而安卓好像统一向上取整&#xff0c…

人工智能|网络爬虫——用Python爬取电影数据并可视化分析

一、获取数据 1.技术工具 IDE编辑器:vscode 发送请求:requests 解析工具:xpath def Get_Detail(Details_Url):Detail_Url Base_Url Details_UrlOne_Detail requests.get(urlDetail_Url, headersHeaders)One_Detail_Html One_Detail.cont…

[MySQL--基础]多表查询

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:生活中最大的挑战就是发现自己是谁。然后,坚定不移地成为那个人。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 多表查询 前言多表关系概述&#x1f…

为什么 SQL 不适合图数据库

背景 “为什么你们的图形产品不支持 SQL 或类似 SQL 的查询语言?” 过去,我们的一些客户经常问这个问题,但随着时间的推移,这个问题变得越来越少。 尽管一度被忽视,但图数据库拥有无缝设计并适应其底层数据结构的查询…

四层LVS与七层Nginx负载均衡的区别

一、四层负载均衡与七层负载均衡: (1)四层负载均衡: 四层负载均衡工作在 OSI 七层模型的第四层(传输层),指的是负载均衡设备通过报文中的目标IP地址、端口和负载均衡算法,选择到达的…

赛事回顾 | 首届“智航杯“全国无人机智能算法竞赛落幕

11月28日,首届“智航杯”全国无人机智能算法竞赛实物赛在海南省三亚市成功落下帷幕。此次竞赛自2023年4月启动以来,共有来自全国145所高等院校和50多所企事业单位的1253支团队、3655人报名参赛,最终有6支队伍脱颖而出,入围了实物赛…

Elasticsearch:评估 RAG - 指标之旅

作者:Quentin Herreros,Thomas Veasey,Thanos Papaoikonomou 2020年,Meta发表了一篇题为 “知识密集型NLP任务的检索增强生成” 的论文。 本文介绍了一种通过利用外部数据库将语言模型 (LLM) 知识扩展到初始训练数据之外的方法。 …

11.9每日一题(无穷比无穷型的极限:提出并消去无穷因子、抓大头、拆多项式)

注:1、 为x的绝对值,因为x趋向负无穷,所以为 -x 2、用有理运算法则拆分式子时,注意判断极限是否存在

Python 网络爬虫(二):HTTP 基础知识

《Python入门核心技术》专栏总目录・点这里 文章目录 1. HTTP 协议简述2. HTTP 请求过程3. HTTP 的结构3.1 请求行3.2 请求头3.3 请求体3.4 状态行3.5 响应头3.6 响应体 4. Cookie 状态管理5. HTTP 请求示例6. 总结 大家好,我是水滴~~ 在准备学习网络爬虫之前&…

springboot慢性胃炎管理系统-计算机毕设 附源码 35541

SpringBoot慢性胃炎管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医疗行业当然也不例外。慢性胃炎管理系统是以实际运用为开发背景,运用软件工程…

PLC通过485Modbus转Profinet网关与温控表通讯在发酵罐的应用

前提:在自动化控制系统中,PLC通常需要和各种设备进行数据通讯,其中就包括温控表。而这些设备之间的通讯常常需要通过485Modbus转Profinet网关(XD-MDPN100)来实现。 方案:在一些应用场合中,Profi…

Spring Boot 3 整合 Spring Cache 与 Redis 缓存实战

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…