探索C嘎嘎:初步接触STL

news2024/11/25 20:54:49

#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.coloradmin.cn/o/2228548.html

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

相关文章

【java】java的基本程序设计结构03-charboolean

char类型 代表 字符--符号---几何图形 大小由编码类型决定。 char是基本类型,但String不是。 String是Java中的一个类,属于引用类型; char中只能放一个字符。 char a‘a’; //任意单个字符,加单引号。 char a‘中’;//任意单个中文…

22-Carla AD 代理

CARLA AD agent是一种AD agent,它可以遵循给定的路线,避免与其他车辆相撞,并通过访问地面真实数据来遵守红绿灯的状态。CARLA AD demo使用它来提供一个如何使用ROS桥接的示例。 在内部,CARLA AD Agent使用单独的节点进行局部规划。…

Could not find the planner configuration ‘None‘ on the param server

moveit中运行demo.launch报错:Could not find the planner configuration ‘None’ on the param server 打开config文件夹下的config,找到ompl_planning.yaml文件,找到: arm: default_planner_config: None gripper: default_p…

微信支付宝小程序SEO优化的四大策略

在竞争激烈的小程序市场中,高搜索排名意味着更多的曝光机会和潜在用户。SEO即搜索引擎优化,对于小程序而言,主要指的是在微信小程序商店中提高搜索排名,从而增加曝光度和用户访问量。有助于小程序脱颖而出,提升品牌知名…

Servlet 3.0 注解开发

文章目录 Servlet3.0注解开发修改idea创建注解的servlet模板内容讲解 关于servlet3.0注解开发的疑问_配置路径省略了属性urlPatterns内容讲解内容小结 Servlet3.0注解开发 【1】问题 说明:之前我们都是使用web.xml进行servlet映射路径的配置。这样配置的弊端&…

如何把网页的图片批量下载?3批量下载方法有详细步骤

如何把网页的图片批量下载?在浏览网页时,我们经常会遇到内容丰富、图片繁多的页面,无论是欣赏美图集、研究设计案例,还是收集教学素材,这些图片往往都是宝贵的资源。然而,一张张手动保存不仅耗时费力&#…

Linux中SPI

参考资料 https://www.cnblogs.com/aaronLinux/p/6219146.html1.SPI 2.SPI传输 2.1传输示例 首先,CS0拉低选中的SPI Flash , 然后在每个时钟周期, DO输出对应的电平。 SPI FLASH会在每个时钟的上升沿读取D0的电平。2.2SPI模式 根据SCK的电平以及数据在…

状态机模型

文章目录 一、大盗阿福二、股票买卖 IV三、股票买卖 V四、设计密码4.1kmp题目4.2设计密码 一、大盗阿福 题目链接 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N 1e5 10; int f[N][2]; int main() {int…

用户统计开发思路

1. 需求分析 所谓用户统计&#xff0c;实际上统计的是用户的数量。通过折线图来展示&#xff0c;上面这根蓝色线代表的是用户总量&#xff0c;下边这根绿色线代表的是新增用户数量&#xff0c;是具体到每一天。所以说用户统计主要统计两个数据&#xff0c;一个是总的用户数量&…

我开源了一个短视频应用(Go+React)|DouTok2.0 项目介绍

前言 大家好&#xff0c;这里是白泽&#xff0c;拖更了一段时间&#xff0c;抱歉。在 DouTok2.0 可以初步允许大家接入开发之后&#xff0c;这篇文章才得以出炉。 DouTok&#xff1a;一个开源的 web 端的短视频应用&#xff0c;采用微服务架构&#xff0c;包含前后端&#xff…

JavaEE初阶---网络原理之TCP篇(二)

文章目录 1.断开连接--四次挥手1.1 TCP状态1.2四次挥手的过程1.3time_wait等待1.4三次四次的总结 2.前段时间总结3.滑动窗口---传输效率机制3.1原理分析3.2丢包的处理3.3快速重传 4.流量控制---接收方安全机制4.1流量控制思路4.2剩余空间大小4.3探测包的机制 5.拥塞控制---考虑…

玩转HF/魔搭/魔乐社区

下载依赖 下载指定文件 玩转HF/魔搭/魔乐社区 1. 闯关任务 &#x1f600;Hello大家好&#xff0c;这节课为大家带来“玩转HF/魔搭/魔乐社区”的课程&#xff0c;课程任务请访问闯关任务 2. 课程内容 &#x1f600;Hello大家好&#xff0c;欢迎来到书生大模型实战营第四期…

ReactNative Fabric渲染器和组件(5)

ReactNative Fabric渲染器和组件 简述 Fabric是ReactNative中新架构最核心的模块&#xff0c;本章我们会来了解一下自定义一个Fabric组件&#xff0c;然后在JS文件中声明之后如何&#xff0c;是怎么映射到原生构建一个View的。 关于Fabric架构理念官网已经有说明了&#xff0…

DataSophon集成ApacheImpala的过程

注意: 本次安装操作系统环境为Anolis8.9(Centos7和Centos8应该也一样) DataSophon版本为DDP-1.2.1 整合的安装包我放网盘了: 通过网盘分享的文件&#xff1a;impala-4.4.1.tar.gz等2个文件 链接: https://pan.baidu.com/s/18KfkO_BEFa5gVcc16I-Yew?pwdza4k 提取码: za4k 1…

计算机网络-MSTP概述

一、RSTP/STP的缺陷与不足 前面我们学习了RSTP对于STP的一些优化与快速收敛机制。但在划分VLAN的网络中运行RSTP/STP&#xff0c;局域网内所有的VLAN共享一棵生成树&#xff0c;被阻塞后的链路将不承载任何流量&#xff0c;无法在VLAN间实现数据流量的负载均衡&#xff0c;导致…

字节青训-兔群繁殖之谜

问题描述 生物学家小 R 正在研究一种特殊的兔子品种的繁殖模式。这种兔子的繁殖遵循以下规律&#xff1a; 每对成年兔子每个月会生育一对新的小兔子&#xff08;一雌一雄&#xff09;。新生的小兔子需要一个月成长&#xff0c;到第二个月才能开始繁殖。兔子永远不会死亡。 小 R…

uniapp写移动端,适配苹果手机底部导航栏,ios安全区问题,苹果手机遮挡底部信息,uview的u-action-sheet组件

手机上有很多组件&#xff0c;需要手机底部弹窗来做选择,picker选择器&#xff0c;select列选择器呀这些&#xff0c;在苹果手机上会被底部nav遮住 采用了好几种配置的方式&#xff0c;多多少少都不太行&#xff0c;还是采用css来做吧&#xff0c;但是css来写想让它生效&#x…

从零开始使用Surya-OCR最新版本0.6.1——最强文本检测模型:新添表单表格检测识别

目录 一、更新概述 二、环境安装 1.基础环境配置 2.模型参数下载 3.参数地址配置——settings.py 三、指令使用 1.命令指令运行 一、更新概述 surya项目Github地址&#xff1a;https://github.com/VikParuchuri/surya 号称今年最强OCR的surya近期迎来新的更新&#xff0c;Vik…

深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用

深入理解C Lambda表达式&#xff1a;语法、用法与原理及其包装器的使用 lambda表达式C98中的一个例子lambda表达式语法lambda表达式各部分说明捕获列表说明 函数对象与lambda表达式 包装器function包装器 bind &#x1f30f;个人博客主页&#xff1a; 个人主页 本文深入介绍了…

nacos介绍

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它致力于提供发现、配置和管理微服务的统一解决方案&#xff0c;以支持构建云原生应用。 服务发现&#xff08;Service Discovery&#xff09;&#xff1a; Nacos 支持服务的动态注册与发现&#xff…