【C++进阶篇】——STL的简介

news2024/12/25 1:11:57

【C++进阶篇】——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)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。我们后面学习STL要阅读部分源代码,主要参考的就是这个版本。

3.STL的六大组件

在这里插入图片描述

4.STL的重要性

STL(标准模板库)在C++编程中具有非常重要的地位,主要体现在以下几个方面:

  1. 数据结构和算法的复用:STL提供了一系列常用的数据结构(如向量、集合、映射等)和算法(如排序、查找等),使得程序员可以快速构建复杂的数据结构和实现高效的算法,而不必从头编写。

  2. 提高开发效率:使用STL可以显著提高开发效率,程序员可以集中精力解决特定问题而不是实现基础的功能,减少了代码编写和调试的时间。

  3. 通用性和灵活性:STL是基于模板的,具有很高的通用性。它允许用户定义自定义数据类型,以便与STL的算法和容器结合使用,这增强了灵活性。

  4. 性能优化:STL的许多实现都是经过高度优化的,可以提供良好的性能。标准库通常由经验丰富的开发者设计和实现,因此它的性能往往优于用户自己编写的相同功能代码。

  5. 一致性和可维护性:通过使用STL,代码的风格和结构可以保持一致,有助于代码的可读性和可维护性,团队成员之间更容易理解彼此的代码。

  6. 广泛使用和社区支持:STL是C++标准的一部分,被广泛使用并得到大多数C++开发者的支持。问题和解决方案在社区内共享,形成了丰富的学习资源。

总体来说,STL是C++程序开发中不可或缺的工具,帮助开发者编写更加高效、可读和可维护的代码。

5.如何学习STL

在这里插入图片描述

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

推荐书籍《STL源码剖析》

最后,本篇文章到此结束,感觉不错的友友们可以一键三连支持一下笔者,有任何问题欢迎在评论区留言哦~

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

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

相关文章

Github优质项目推荐(第八期)

文章目录 Github优质项目推荐 - 第八期一、【manim】,66.5k stars - 创建数学动画的 Python 框架二、【siyuan】,19.5k stars - 个人知识管理软件三、 【GetQzonehistory】,1.3k stars - 获取QQ空间发布的历史说说四、【SecLists】&#xff0…

<Project-11 Calculator> 计算器 0.3 年龄计算器 age Calculator HTML JS

灵感 给工人发工资是按小时计算的,每次都要上网,我比较喜欢用 Hours Calculator ,也喜欢它的其它的功能, 做个类似的。 我以为是 Python,结果在学 javascript 看 HTML,页面的基础还停留在 Frontpage 2000…

leetCode算法题爬楼梯递归写法

题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 1 阶2. 2 阶 …

互联网的无形眼睛:浏览器指纹与隐私保护攻略

你是否曾有过这样的经历:在某个电商网站上搜索了某件商品,随后无论你打开哪个网页,都能看到与之相关的广告?或者当你再次访问某个网站时,它居然记得你之前的浏览记录?这一切,背后都有一只“看不…

GEE引擎架设好之后进游戏时白屏的解决方法——gee引擎白屏修复

这两天测试GeeM2引擎的服务端,最常见的问题就是点击开始游戏出现白屏,最早还以为是服务端问题,结果是因为升级了引擎,而没有升级NewUI这份文件导致的。解决方法如下: 下载GEE引擎包最新版,(可以…

vue+spreadjs开发

创建vue3项目 pnpm create vite --registryhttp://registry.npm.taobao.org安装spreadjs包 pnpm install "grapecity-software/spread-sheets17.1.7" "grapecity-software/spread-sheets-resources-zh17.1.7" "grapecity-software/spread-sheets-vu…

Linux操作进程

前言 这次的主要内容就是进程的实操,主要是进程创建,进程终止,进程等待和进程程序替换,最后我们在手写一个简单的shell 1.进程创建 进程创建就是fork,所以我们就讲一些知识性的就可以了 首先在创建子进程的时候&…

【ArcGIS Pro实操第5期】全局及局部空间插值:GPI、LPI、IDW等

ArcGIS Pro实操第5期:全局及局部空间插值 ArcGIS Pro-用于空间插值的丰富工具箱实操:空间插值方法1:Trend Surface Model for Interpolation-以降水数据为例方法2:Kernel Density Estimation Method-以单位面积鹿的目击数为例方法…

爆破(使用Burp Suite)

以此靶场为例 1.启动此靶场,双击靶机进入 2.进入后页面如下 3.打开Burp Suite中的代理中的拦截 4.再随便往输入框里面输入什么 5.提交后为这个页面,或其他 6.将系统代理改为proxy,按图片顺序点 本来选中的是系统代理,改为proxy …

ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)

【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】【创作不易,点个赞就是对我最大的支持】 前言 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! 目录 前…

2024“源鲁杯“高校网络安全技能大赛-Misc-WP

Round 1 hide_png 题目给了一张图片,flag就在图片上,不过不太明显,写个python脚本处理一下 from PIL import Image ​ # 打开图像并转换为RGB模式 img Image.open("./attachments.png").convert("RGB") ​ # 获取图像…

新手直播方案

简介 新手直播方案 ,低成本方案 手机/电脑 直接直播手机软件电脑直播手机采集卡麦电脑直播多摄像机 机位多路采集卡 多路麦加电脑(高成本方案) 直播推流方案 需要摄像头 方案一 :手机 电脑同步下载 网络摄像头 软件&#xff08…

MySQL-DQL练习题

文章目录 简介初始化表练习题 简介 本节简介: 主要是一些给出一些习题, 关于DQL查询相关的, DQL查询语句是最重要的SQL语句, 功能性最复杂, 功能也最强, 所以本节建议适合以及有了DQL查询基础的食用, 另外注意我们使用的是Navicat, SQL编辑的格式规范也是Navicat指定的默认格式…

基于信号分解和多种深度学习结合的上证指数预测模型

大家好,我是带我去滑雪! 为了给投资者提供更准确的投资建议、帮助政府和监管部门更好地制定相关政策,维护市场稳定,本文对股民情绪和上证指数之间的关系进行更深入的研究,并结合信号分解、优化算法和深度学习对上证指数…

codimd更改登录超时时限

codimd更改登录超时时限不生效,总是大概15分钟退出 现象:更改CMD_SESSION_LIFE,无论怎么改大都不生效,总是大概15分钟。 解决: 发现需要同步修改CMD_SESSION_SECRET,修改完毕之后终于更新了。 CMD_SESSIO…

Spring Cloud --- Sentinel 熔断规则

熔断规则 慢调用比例 发送10个请求,每个请求理想响应时长为200毫秒。统计1秒钟,如果10个请求响应时间超过200毫秒的比例大于等于10%,则触发熔断,熔断5秒。 异常比例 1秒内,发送请求出现异常率为20%,则触…

2024年10月27日 十二生肖 今日运势

小运播报:2024年10月27日,星期日,农历九月廿五 (甲辰年甲戌月甲子日),法定节假日。 红榜生肖:牛、猴、龙 需要注意:羊、兔、马 喜神方位:东北方 财神方位&#xff1a…

报名了,奖金6万!2024年四川省大学生数据科学与统计建模竞赛(算法赛)-基于新网银行数据集

为进一步培养学生创新精神和实践能力,鼓励学生运用统计学模型、机器学习模型等数据科学专业知识,协助解决经济社会领域中的实际问题,由四川省教育厅主办,西南财经大学与四川新网银行承办,四川省普通本科高等学校统计学…

LLM生命周期

LLM生命周期 1.Using LLMs 第一种方式: Public API or Private API. 第二种方式: 感谢开源模型,Deploy or Using them via private API. 2.Stage1:BUILDING 1.准备数据(Data preparation & Sampling&#xff…

Vue - Element 选择器 el-select 既可以选择下拉又可以手动输入文本功能(手动输入的值只能是数字 并且支持4位小数)

Vue - Element 选择器 el-select 既可以选择下拉又可以手动输入文本功能(手动输入的值只能是数字 并且支持4位小数) 备注 filterable 下拉框开启快速搜索功能 no-match-text 当输入的内容在下拉框中找不到时;下拉框提示的文字 handFocus 触发…