探索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++之路,任重而道远,希望以后我不会中途放弃,如果文章有错误,请在评论区指出,我定会及时更正,那么,我们下一篇文章见啦!

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

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

相关文章

指令系统 I(指令的格式、寻址)

一、指令系统 1. 指令集体系结构 指令(机器指令)是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统,也称指令集。 指令系统是指令集体系结构(ISA&#xf…

说一说QWidget

目录 关于QWidget 作为界面组件时,你需要有印象的 1. 控制属性 2. 组件状态与交互属性 3. 外观和样式属性 4. 布局与子组件管理属性 5. 图标和光标属性 6. 大小策略属性 作为单独的窗体的属性 写Qt快两年了,也写过一些规模偏大的软件&#xff0c…

刘艳兵-DBA015-对于属于默认undo撤销表空间的数据文件的丢失,哪条语句是正确的?

对于属于默认undo撤销表空间的数据文件的丢失,哪条语句是正确的? A 所有未提交的交易都将丢失。 B 数据库实例中止。 C 数据库处于MOUNT状态,需要恢复才能打开。 D 数据库保持打开状态以供查询,但除具有SYSDBA特权的用…

如何精准选择Yandex关键词

Hey小伙伴们👋,今天来聊聊如何精准选择Yandex关键词,让你的广告投放效果最大化!🔍 1.使用Yandex关键词工具:Yandex提供了关键词工具,如Yandex Keyword Planner和Yandex Wordstat&#xff0…

快速生成高质量提示词,Image to Prompt 更高效

抖知书老师推荐: 随着 AI 技术的不断发展,视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中,图像与文字的交互需求愈发旺盛,很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…

go语言回调函数的使用

前言 在 Go 语言中,回调函数是一种将一个函数作为参数传递给另一个函数,在特定的事件发生时被调用的编程模式。 一、回调函数的定义 type OnTaskHandler func(r []byte)type remoteTaskClient struct {sync.RWMutexonTask OnTaskHandler } 以上定义了…

Kubernetes(k8s)挂载hostPath和emptyDir两种volume的区别

Kubernetes挂载可以指定多种类型的volume,这篇文章聊一下hostPath和emptyDir两种volume的区别。 hostPath类型是将宿主机的目录或者文件挂载到容器中,这样容器写入和读取的数据是直接反映在宿主机上的,这种方式产生的数据可以在不同pod之间共…

jmeter附件上传

可以采用录制的方式获取附件上传的http请求 普通参数 附件参数 文件名称: 方式一:如果只添项目名称,默认充jmeter的bin目录下获取 方式二:点击文件名称,再点击浏览,可以自己选择文件信息

OpenCV视觉分析之目标跟踪(7)目标跟踪器类TrackerVit的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 VIT 跟踪器由于特殊的模型结构而变得更快且极其轻量级,模型文件大约为 767KB。模型下载链接:https://github.com/opencv/…

如何用Python同时抓取多个网页:深入ThreadPoolExecutor

背景介绍 在信息化时代,数据的实时性和获取速度是其核心价值所在。对于体育赛事爱好者、数据分析师和投注行业而言,能否快速、稳定地抓取到实时比赛信息显得尤为重要。特别是在五大足球联赛中,能够在比赛进行时获得比分、控球率等实时数据&a…

Typora 、 Minio and PicGo 图床搭建

流程介绍 本地安装Typora笔记工具拥有一台装有docker的服务器配置minio云图床管理控制页面下载PicGo上传工具服务器Docker环境搭建—Ubuntu系统 删除旧docker的所有依赖(非root用户) # 删除docker及安装时自动安装的所有包 sudo apt-get autoremove docker docker-ce docker…

【UBuntu20 配置usb网卡】 记录Ubuntu20配置usb网卡(特别是建立热点)

【UBuntu20 配置usb网卡】 Ubuntu20配置usb网卡(特别是建立热点) 一、 闲言碎语的前言 usb的外置网卡,相比Windows即插即用,Linux买回来一顿折腾,准备把过程梳理一下记录起来。 网卡的方案其实就那几家,…

前端开发模块VUE-Element UI学习笔记

前端开发模块VUE-Element UI学习笔记 文章目录 前端开发模块VUE-Element UI学习笔记 1、Element UI 简介2、Element UI 安装3、Icon 图标4、Button 按钮5、Link 超链接6、Radio 单选框7、Checkbox 多选框8、Input 输入框9、Select 下拉框10、Switch 开关 1、Element UI 简介 基…

Java面试经典 150 题.P169. 多数元素(005)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int majorityElement(int[] nums) …

如何在Python爬虫等程序中设置和调用http代理

在Python爬虫中为了更好地绕过反爬机制,获取网页信息,有时可能需要在Python中应用代理服务,这样做的目的就是防止自己的ip被服务器封禁,造成程序运行时中断连接,那么如何在python中设置代理呢? 我们通过几个…

海思MPP音视频总结

基础篇 1.常用图像格式介绍 常用图像像素格式 RGB 和 YUV。 1.1RGB RGB分类通常指的是将图像或颜色按照RGB(红、绿、蓝)颜色空间进行分组或分类。RGB图像格式通常包括RGB24(RGB888)、RGB32、RGBA、RGB565等。 RGB24是一种常用…

一篇万字文章带你快速上手MySQL中表的增删查改操作

1. 创建–CREATE 1.1 基本使用方法 语法: CREATE TABLE table_name (column1 datatype [constraints],column2 datatype [constraints],... );table_name: 要创建的表的名称。column1, column2, …: 表中的列名。datatype: 列的数据类型,如 INT, VARC…

预览 PDF 文档

引言 在现代Web应用中,文件预览功能是非常常见的需求之一。特别是在企业级应用中,用户经常需要查看各种类型的文件,如 PDF、Word、Excel 等。本文将详细介绍如何在Vue项目中实现 PDF 文档的预览功能。 实现原理 后端API 后端需要提供一个…

【c++ gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试

【c gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试 下载谷歌提供的c测试库在VsCode中安装抖音AI大模型找到c项目文件夹,使用VsCode和VS进行双开生成gtest代码进行c单例测试 下载谷歌提供的c测试库 在谷歌浏览器搜索github gtest, 第…

Pycharm,2024最新版Pycharm现在安装环境配置汉化详细教程!

码(文末附带精品籽料): K384HW36OBeyJsaWNlbnNlSWQiOiJLMzg0SFczNk9CIiwibGljZW5zZWVOYW1lIjoibWFvIHplZG9uZyIsImxpY2Vuc2VlVHlwZSI6IlBFUlNPTkFMIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsIm…