探索C嘎嘎:初步接触STL

#1024程序员节|征文#

前言:

  在前文小编讲述了模版初阶,其实讲述模版就是为了给讲STL提前铺垫,STL是C++中很重要的一部分,各位读者朋友要知道它的份量,下面废话不多说,开始走进STL的世界。

目录:

1.STL是什么

2.STL的版本

3.STL的六大组件

4.STL的重要性

5.如何学习STL

正文:

1.STL是什么

  STL(standard template libaray-标准模板库)是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且还是一个包罗数据结构和算法的软件框架。简单来说,STL包含了很多东西,其中就有小编之前讲过的栈,队列等等一系列数据结构,是一个很全能的库,等小编之后深入讲述里面的内容读者朋友就知道为什么我说它是全能的了,下面我们来说说STL的版本。

2.STL的版本

  下面这些版本都是小编从网上查询的,如果有错误的话小编会及时更正的。

2.1.原始版本

  Alexander Stepanov、Meng Lee在惠普实验室(这里的惠普实验室就是如今电脑品牌惠普(HP)的下属实验室)完成的原始版本,本着开源的精神(小编很敬佩这些拥有开源精神的大佬们),他们声明允许任何人任意运用。拷贝。修改。传播,商业使用这些代码,无须付费。唯一的条件就是也需要向原始版本一样做开源使用。HP-所有STL实现版本的始祖(真就是老祖宗)。

2.2.P.J.版本

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

2.3.RW版本

  由Rouge Wage公司开发,继承自HP版本,被C++ Builder采用(这个编译器以前比较出名,但是后来没落了),不能公开或者修改,可读性一般。

2.4.SGL版本

  Silicon Graphics Computer SystemsInc公司开发,继承自HP版本,被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖、从风格命名和编程风格看,阅读性非常高。小编后来的文章关于STL的就是要阅读这部分源代码,主要参考的也会是这个版本。

3.STL的六大组件

  这六大组件小编就用图片展示了:

  以后小编就要围绕上面六个组件进行展开讲解。 

4.如何学习STL

  对于如何学习STL,小编本来想要引用一位名人说过的话来进行讲述,但是我看很多相关文章都涉及到了这句话,小编在说就显得重复了,所以小编认为,学习好STL,是分为三步的,第一步就是熟用C++,如果STL都不会使用的话,那么怎谈学习好这三个字,所以熟用STL就是学习好STL的第一步;第二步了解泛型技术的内涵与STL的学理乃至作品,对于这一步,其实就是我们要依靠前人走过的路了,我们需要理解前人对于泛型技术的内涵的讲述,了解他们通过自己的学习STL凝结而成的作品,这里就比如侯捷老师的《STL源码剖析》等等一系列作品,我们在熟悉使用STL后就要知道STL的内涵到底是什么,它里面的一些功能是如何实现的;第三步就是扩充STL,我们已经熟用了STL,了解了STL的内涵,下面就要我们自己去扩充STL了,这一步的实现其实是很困难的,小编认为自己大学这几年是达不到这个境界的,这等境界也许以后会在工作中开始慢慢的开始提高,小编最大的希望就是完成前两步就足矣。这便是学习STL的三步,简单来说,学习STL的三个境界,就是:能用,能明理,能扩展,做好这三步,STL便是学习到了精髓。

5.总结

  以上便就是本篇文章所要讲述的内容,本文很短,跟水文章一样(我绝对不是为了水文章而写的⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄),但是其实本文仅仅就是STL的简介罢了,以后我所写的内容就是文章所提及的内容,学C++之路,任重而道远,希望以后我不会中途放弃,如果文章有错误,请在评论区指出,我定会及时更正,那么,我们下一篇文章见啦!

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

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

相关文章

使用Python进行数据分析入门

文章目录 Python环境搭建安装Anaconda验证安装 必备库介绍NumPyPandasMatplotlibSciPy 数据导入与清洗导入数据清洗数据 数据探索与分析描述性统计相关性分析 数据可视化绘制直方图 高级主题机器学习深度学习 总结 随着大数据时代的到来,数据分析变得越来越重要。Py…

宏组学干货|一文get宏基因组产品如何选择

大家好,小编来分享宏基因组产品选做思路喽~ 随着微生物研究的发展和高通量测序技术的出现,微生物的研究迎来了宏组学技术研究时代。目前宏组学产品种类繁多,常见项目主要包括宏基因组、宏病毒组和宏转录组。宏基因组项目可以检测宏样本中所有…

Elasticsearch —— ES 环境搭建、概念、基本操作、文档操作、SpringBoot继承ES

文章中会用到的文件,如果官网下不了可以在这下 链接: https://pan.baidu.com/s/1SeRdqLo0E0CmaVJdoZs_nQ?pwdxr76 提取码: xr76 一、 ES 环境搭建 注:环境搭建过程中的命令窗口不能关闭,关闭了服务就会关闭(除了修改设置后重启的…

【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法

【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法 文章目录 【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法1. 论文信息2. 算法介绍3. 创新点小结4. 实验效果5. 算法结论6. 代码实现7. 问题及优化方向1. 冷启动问题2. 稀…

Windows 系统安装 Hadoop 详细教程

Hadoop 是一个分布式系统基础架构,在大数据处理领域有着广泛的应用。在 Windows 系统上安装 Hadoop 虽然相对复杂一些,但只要按照步骤来,也可以顺利完成。本文将详细介绍在 Windows 系统下安装 Hadoop 的过程。 一、准备工作 下载 Hadoop 安装…

如何快速使用Cesium完成项目

要快速使用Cesium完成项目,可以按照以下步骤进行: 学习基础知识: 首先,了解Cesium的基本概念和功能。可以通过阅读Cesium的官方文档和一些入门教程来掌握基础知识。例如,可以参考“Cesium速成教程:一小时入…

记录一下方便的条件编译

1. 需要准备: 1-1、npm i cross-env -D 是跨平台的自定义编译 1-2、构造工具:vite/webpack > vite: import.meta.env.VITE_NODE_ENV > webpack:process.env.NODE_ENV这里使用vite为例子 1-3、 package.json 2. 思路与步骤 首先我们知道 axio…

前端开发转行做渗透测试,通过挖漏洞来赚钱

最近,一个做运维的朋友在学渗透测试。他说,他公司请别人做渗透测试的费用是 2w/人天,一共2周。2周 10w 的收入,好香~ 于是,我也对渗透测试产生了兴趣。开始了探索之路~ 什么是渗透测试 渗透测试这名字听起来有一种敬…

网络自动化02:基于xlsx传入设备信息与所需执行备份配置命令,使用netmiko自动化登录分发

这是这个系列第二篇 本文将仅简单介绍使用xlsx导入设备信息,并使用netmiko配置 目录 环境设备信息表格式单线程代码解释代码逻辑分析函数解析 逻辑调用图逻辑说明 遇到的问题写在最后 环境 所有设备均能与我执行Python脚本的环境互通,同时均拥有独立的ip…

Knowledge-refined Denoising Network for Robust Recommendation

Knowledge-refined Denoising Network for Robust Recommendation(Sigir23) 摘要 知识图(KG)包含丰富的边信息,是提高推荐性能和可解释性的重要组成部分。然而,现有的知识感知推荐方法直接在KG和用户-项目…

数据结构 之 图的 最小生成树(十二)

提示:本篇难点: 生成树概念的理解 重点:是普利姆算法、克鲁斯卡尔算法构造最小生成树 超超超重点的是 普利姆和克鲁斯卡尔构造最小生成树的算法,这部分可能需要同学们自行去学习了。 一定要理解后用代码能够实现这两个算法已经了解…

如何清空回收站后在 Windows 11/10 中恢复已删除的文件

这篇文章将解释如何将已删除的文件、文件夹和其他项目从回收站还原或恢复到原始位置。有时,我们最终会删除重要的文件和文件夹,然后我们不知道如何将它们恢复到原来的位置。但是您不必担心,因为这篇针对初学者的帖子将详细指导您完成所有步骤…

Axios 请求超时设置无效的问题及解决方案

文章目录 Axios 请求超时设置无效的问题及解决方案1. 引言2. 理解 Axios 的超时机制2.1 Axios 超时的工作原理2.2 超时错误的处理 3. Axios 请求超时设置无效的常见原因3.1 配置错误或遗漏3.2 超时发生在建立连接之前3.3 使用了不支持的传输协议3.4 代理服务器或中间件干扰3.5 …

不懂知识图谱的你,正在失去转行做AI产品经理的机会

伴随着AI这块新的投资风口,新兴企业对AI人才的需求也是激增。所以,你准备好了么? 一、AI来了,你被OUT了,有人却已在快车道上了 给你讲个恐怖的故事:我今年,32岁了!三十岁左右是一生…

Generating /run/initramfs/rdsosreport.txt

Linux中遇到Generating /run/initramfs/rdsosreport.txt 第一步:首先输入 ls /dev/mapper 第二步:输入 xfs_repair /dev/mapper/centos-root -L 第三步:重启reboot 不说原因了,直接上解决方式: 第一步:首先…

纯CSS实现UI设计中常见的丝带效果(5)

原文传送门:纯CSS实现UI设计中常见的丝带效果 网页中的丝带效果在设计中扮演着多重角色,其作用可以归纳为以下几个方面: 视觉吸引与装饰 增强视觉吸引力:丝带效果以其独特的形态和色彩,能够迅速吸引用户的注意力&…

OpenCV系列教程六:信用卡数字识别、人脸检测、车牌/答题卡识别、OCR

文章目录 一、信用卡数字识别1.1 模板匹配1.2 匹配多个对象1.3 处理数字模板1.4 预处理卡片信息,得到4组数字块。1.5 遍历数字块,将卡片中每个数字与模板数字进行匹配 二、人脸检测2.1人脸检测算法原理2.2 OpenCV中的人脸检测流程 三、车牌识别3.1 安装t…

音视频入门基础:FLV专题(21)——FFmpeg源码中,获取FLV文件音频信息的实现(上)

由于本文篇幅较长,分为上、中、下三篇。 一、引言 通过FFmpeg命令可以获取到FLV文件的音频压缩编码格式、音频采样率、通道数、音频码率信息: ./ffmpeg -i XXX.flv 而由《音视频入门基础:FLV专题(9)——Script Tag简…

深度学习之降维和聚类

1 降维和聚类 1.1 图解为什么会产生维数灾难 ​ 假如数据集包含10张照片,照片中包含三角形和圆两种形状。现在来设计一个分类器进行训练,让这个分类器对其他的照片进行正确分类(假设三角形和圆的总数是无限大),简单的…

什么是 L0、L1、L2 和 L3 区块链层以及为什么需要它们

区块链的 L 层越来越多地出现在新闻中(例如,A16z 投资基金正在投资以太坊Optimism上的 L2 解决方案,或者 Orbs 的 L3 解决方案将其解决方案扩展到 TON 区块链)。 层的概念是区块链的一种分类,对于快速了解特定项目如何…