STL简介

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等
> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:了解c++中的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 要阅读部分源代码,主要参考的就是这个版本。

可想而知,咱们c++的库是多样化的,相信咱这里也大佬,觉得目前STL用起来不爽,自己写一个,也行,正所谓每个勇士都需适合自己的刀,方可砥砺前行,咱们就先用用他人的,用起来还是合大众的。

STL的六大组件

容器:放数据---组织数据---本质:就是对常见的数据结构进行封装

算法:相当于把迭代器 和 容器 结合到了一块,算法写好以后每个容器都可以使用,就是迭代器的功劳。

迭代器:算法写好以后,让每个容器都可以使用。

适配器:STL迭代器适配器是指一些函数和类,它们可以将一个迭代器转换成另一个迭代器,或者修改一个迭代器的行为。这些适配器可以帮助我们更方便地使用STL中的算法和容器。

仿函数:STL仿函数(Function Object)是一种行为类似于函数的对象,它可以像函数-样被调用,但是它可以保存状态,可以有自己的成员变量和成员函数。STL仿函数可以作为STL算法的参数,用于指定算法的具体行为。

空间配置器:STL自己封装一个内存池---高效空间申请和释放以及对空间进行管理。

这里就了解了解,见见肉长啥个子样。🤪🤪🤪

 ⭐STL的重要性

无论是在笔试还面试,都考察的重点。

比如说我们学习栈时的一道题目:用两个栈实现队列_牛客题霸_牛客网

 ⭐怎么学习STL

在一本书上是这样写的《The C++ Standand Library》

  🌟结束语

       今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小说手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

22款奔驰S450L升级流星雨大灯 感受最高配的数字大灯

“流星雨”数字大灯,极具辨识度,通过260万像素的数字微镜技术,实现“流星雨”仪式感与高度精确的光束分布;在远光灯模式下,光束精准度更达之前84颗LED照明的100倍,更新增坡道照明功能,可根据导航…

UE 程序化网格 计算横截面 面积

首先在构造函数内加上程序化网格,然后复制网格体到程序化网格组件上,将Static Mesh(类型StaticMeshActor)的静态网格体组件给到程序化网格体上 然后把StaticMesh(类型为StaticMeshActor)Instance暴漏出去 …

原型网络Prototypical Network的python代码逐行解释,新手小白也可学会!!-----系列6 (承接系列5)

文章目录 一、原始代码---随机采样和评估模型二、详细解释分析每一行代码 一、原始代码—随机采样和评估模型 def randomSample(self,D_set): #从D_set随机取支持集和查询集(20个类中的其中一个类,shape为[20,105,105])index_list list(ran…

复旦大学EMBA深度链接深圳科创产业:聚焦智联,产融未来

作为科创成就的经济大区,深圳南山区通过跨界创新研发生态链条,领跑科创产业创新,以187.5平方公里的面积,雄踞着204家上市公司,地均生产总值产出达到了40.7亿元,相当于每平方公里出产超过1家上市公司&#x…

Java项目实战《苍穹外卖》 二、项目搭建

当我痛苦地站在你的面前 你不能说我一无所有 你不能说我两手空空 系列文章目录 苍穹外卖是黑马程序员2023年的Java实战项目,作为业余练手用,需要源码或者课程的可以找我,无偿分享 Java项目实战《苍穹外卖》 一、项目概述Java项目实战《苍穹外…

B-2:Linux系统渗透提权

B-2:Linux系统渗透提权 服务器场景:Server2204(关闭链接) 用户名:hacker 密码:123456 1.使用渗透机对服务器信息收集,并将服务器中SSH服务端口号作为flag提交; 使用nmap扫描,发现ssh服务端口为2283 Flag:2283 2.使用渗透机对服务器信息收集,并将服务器中…

复合、委托、继承

1. 单例模式 静态实例对象在getInstance函数中定义,这样只有在调用函数时才会生成对象 2. 复合 1. 类中封装另一个类某些功能; 2. 构造、析构的调用过程 指明了复合中如何调用被包含类的构造函数,可以直接写在初始化列表位置; 3.…

剑指JUC原理-19.线程安全集合

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

Spring Cloud -熔断器Hystrix

为什么需要服务降级或熔断 微服务架构与传统架构的一个显著区别就是服务变多了,任何一个服务调用失败、或者服务不可用,都会对整个应用造成影响。比如前段时间阿里云整体业务不可用,有多方猜测就是阿里云的某一个关键服务不可用导致的。 服…

火星探测器背后的人工智能:从原理到实战的强化学习

目录 一、引言二、强化学习基础强化学习的基本概念主要算法概述Q-Learning 示例代码 环境建模与奖励设计 三、火星探测器任务分析任务需求与挑战探测器环境建模目标设定与奖励机制层层递进的关系 四、强化学习模型设计模型架构概述DQN架构核心组件: 状态、动作与奖励…

RT-Thread基于STM32H743的网络通信调试

使用STM32H743开发网络通信,本以为会很简单,实际却遇到好多问题,记录一下,以备后续查看。 1.新建工程,系统版本选择的是4.1.1,芯片型号是STM32H743IIK6. 2.修改系统时钟,使用外部25MHz晶振&…

C++类与对象(1)—初步认识

目录 一、面向过程和面向对象 二、类 1、定义 2、类的两种定义方式 3、访问限定符 4、命名规范化 5、类的实例化 6、计算类对象的大小 7、存储方式 三、this指针 1、定义 2、存储位置 3、辨析 四、封装好处 一、面向过程和面向对象 C语言是面向过程的&#xf…

记录联系ThinkPad T490扬声器无声音但插耳机有声音的解决办法

型号:联想ThinkPad T490,系统Win10 64位。 现象:扬声器无声音,插耳机有声音。且右下角小喇叭正常,设备管理器中驱动显示一切也都正常(无黄色小叹号)。 解决办法: 尝试了各种方法&a…

基础课7——数据预处理

在智能客服系统中,数据预处理是进行自然语言处理(NLP)的关键步骤之一。它是对用户输入的文本数据进行分析、处理和转换的过程,目的是将原始文本数据转化为计算机可理解的语言,为后续的智能回答提供支持。 1.什么是数据…

数据结构-插入排序+希尔排序+选择排序

目录 1.插入排序 插入排序的时间复杂度: 2.希尔排序 希尔排序的时间复杂度: 3.选择排序 选择排序的时间复杂度: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的…

基于SpringBoot+MyBatis-Plus的教务管理系统

基于SpringBootMyBatis-Plus的教务管理系统 教务管理系统开发技术功能模块代码结构数据库设计运行截图源码获取 教务管理系统 欢迎访问此博客,是否为自己的毕业设计而担忧呢?是否感觉自己的时间不够做毕业设计呢?那你不妨看一下下面的文章&a…

CUDA编程一、基本概念和cuda向量加法

目录 一、cuda编程的基本概念入门 1、GPU架构和存储结构 2、cuda编程模型 3、cuda编程流程 二、cuda向量加法实践 1、代码实现 2、代码运行和结果 有一段时间对模型加速比较感兴趣,其中的一块儿内容就是使用C和cuda算子优化之类一起给模型推理提速。之前一直…

2023年最新软件安装管家目录

最新软件安装管家目录 软件目录 ①【电脑办公】电脑系统(直接安装)Win7Win8Win10OfficeOffice激活office2003office2007office2010office2013office2016office2019office365office2021wps2021Projectproject2007project2010project2016project2019projec…

python基础练习题库实验3

题目1 编写一个程序,根据以下定价计算成本。 Number of itemsCost1-50每件3美元 邮费: 10美元超过50每件2美元 邮寄:免费 举个例子: 代码 items_num input("Enter the number of items: ") items_num_i int(items_num) ite…

JVM虚拟机:通过日志学习PS+PO垃圾回收器

我们刚才设置参数的时候看到了-XXPrintGCDetails表示输出详细的GC处理日志,那么我们如何理解这个日志呢?日志是有规则的,我们需要按照这个规则来理解日志中的内容,它有两个格式,一个格式是GC的格式(新生代&…