【C++初阶】:string类

news2024/11/24 19:16:22

string

  • 一string的基本用法
  • 二.迭代器
    • 1.基本使用
    • 2.语法糖
    • 3.反向迭代器
    • 4.const迭代器
  • 三.容量
  • 四.插入和删除
  • 五.一个例题:解析协议
  • 六.读取空格
  • 七.一些其他函数

一string的基本用法

文档里

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

一般使用

在这里插入图片描述

二.迭代器

在这里插入图片描述

1.基本使用

string里重载了一种非常厉害的运算符[ ]

在这里插入图片描述

这个运算符本质上是解引用,是数组用来访问数据的运算符。所以我们可以用这个运算符对每个字符进行操作。补充个小知识:string是一个类,类里有许多的成员函数,这些成员函数下面会讲,这里先用一个size,代表字符串的长度。

访问每个字符

在这里插入图片描述

在这里插入图片描述

迭代器

在这里插入图片描述

在这里插入图片描述

2.语法糖

在这里插入图片描述

在这里插入图片描述

这里的原理是,把s2的每一个字符复制到ch里,auto自动推演ch的类型。因为ch是复制的值,所以下面改变ch并不会改变s2,如果需要改变,我们得用&

在这里插入图片描述

在这里插入图片描述

这里看起来是一个范围for,实际上底层依然是迭代器。

3.反向迭代器

在这里插入图片描述

在这里插入图片描述

4.const迭代器

在这里插入图片描述

这里实际上是一个权限放大的问题,const对象也应当调用const迭代器。

在这里插入图片描述**在这里插入图片描述

补充一下:为什么const修饰,it却能++呢?知识因为const修饰的实际上*it,而不是it。

三.容量

在这里插入图片描述

在这里插入图片描述

我们可以看到它有一个capacity函数,就是容量,如果容量不够它就会自动扩容,不同的编译器扩容的大小是不一样的,在vs2019里每次扩容1.5倍。很明显这样扩容的代价是很大的,很容易就没空间了,所以它又提供了一个reserve函数。

在这里插入图片描述
在这里插入图片描述

上面还有一个resize函数,resize和reserve的区别是:resize是开空间+初始化(默认是\0),reserve是单纯的开空间。

在这里插入图片描述

在这里插入图片描述

四.插入和删除

插入
在这里插入图片描述

在这里插入图片描述

删除

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

谨慎使用insert和erase,插入和删除效率很低,能避免就避免。

五.一个例题:解析协议

find函数
在这里插入图片描述

substr函数
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六.读取空格

在这里插入图片描述

字符串在使用cin读取时遇到空格就会自动停止,使用这个函数就可以读取空格,并且可以自由控制。

在这里插入图片描述

七.一些其他函数

在这里插入图片描述
字符串转整形
在这里插入图片描述

字符串转double
在这里插入图片描述
其他转字符串

在这里插入图片描述

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

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

相关文章

【web安全】文件包含漏洞

目录 1.什么是文件包含漏洞 2.产生原因 3.文件包含的类型 3.1本地文件包含 3.2远程文件包含 4.攻击利用手法 4.1 file:协议 4.2 php://协议 ​4.3 zip://,bzip2://,zlib://协议 4.4 data://协议 4.5 PHP伪协议总结 5.如何防御? 6.常见系统的默认路径…

Tcl-11. 列表操作

Tcl 中的列表操作: 列表则是具有特殊解释的字符串。Tcl 中的列表操作和其它 Tcl 命令 一样具有相同的结构。 列表可应1用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命令字符串。 一、list 命令 list 命令用来创建列表…

城市内涝的解决措施,城市内涝积水监测预警系统解决方案

随着城市化进程的加快,城市土地面积不断扩大,原本吸收雨水的土地被水泥、沥青等硬质材料所取代,导致雨水无法迅速渗透和排泄,增加了城市内涝的风险。同时,气候变化带来的极端降雨事件频率增加,更加加剧了内…

mysql触发器监听数据投递中间件

目前市面上有许多的 CDC(Change Data Capture) 框架用于监听数据库的数据变动,例如:canal、Debezium、Maxwell等都是用来解析 binlog 日志实现事件的监听。但是有一个情况就是如果公司对 binlog 日志文件的权限管控的很严格&#…

传统ERP和SaaS ERP区别在哪里?

一、ERP和SaaS ERP概念 企业资源计划 (ERP) 系统是许多企业的主干,助力管理整个企业内的会计、采购流程、项目等。对于许多 IT 部门而言,ERP 系统通常意味着大型、昂贵且耗时的部署,并可能需要进行大量硬件或基础设施投资。然而,…

基于标准库函数的STM32的freertos的移植(三)——MDK工程搭建、配置与修改

1.打开MDK5软件,新建MDK工程,将新建工程文件保存在Project_Stm32f407/mdk文件夹下,并将工程命名为freertos_M4,选择MCU型号为STM32F407ZG,新建工程文件的步骤如下图所示: 图1 新建工程 图2 保存工程路径和工…

ChatGPT-AI地图

ChatGPT-AI地图 1、AI-对话 应用名称应用地址ChatGPThttps://chat.openai.com/NotionAINotion AIA.I. Data Sidekick:AI工具编写 SQL、文档等的速度提高10倍[AirOpsWritesonic:人工智能写作辅助工具Writesonic - Best AI Writer, Copywriting & Par…

《深入理解计算机系统(CSAPP)》第3章 程序的机器级表示 - 学习笔记

写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…

MySQL 数值函数

文章目录 数值函数1. abs(num)2. ceil(num)3. floor(num)4. mod(num1,num2)5. rand()6. round(num,n)7. truncate(num,n)8. sqrt(num) 数值函数 数值函数用来处理数值方面的运算,能够提高用户的工作效率。常用的数值函数如下表所示,函数括号内为输入的参…

牛客网基础语法11~20题

前言:今天是咱们第二期刷牛客网上的题目。 目标:对输入输出的格式,方法,类型掌握熟练,对double,float理解深入,编程思想更进一步。 鸡汤:人活着,再苦再累,都别…

16-Vue技术栈之常用的 Composition API

目录 1、什么是组合式 API?2、拉开序幕的setup3、ref函数4、reactive函数5、Vue3.0中的响应式原理5.1 vue2.x的响应式5.2 Vue3.0的响应式 6、reactive对比ref7、setup的两个注意点8、计算属性与监视8.1 computed函数8.2 watch函数8.3 watchEffect函数 9、 生命周期1…

防雷接地的施工工艺与防雷施工方案

雷电是自然界的一种强大而危险的自然现象,经常造成重大财产损失和人员伤亡。为了保护建筑物和人员免受雷电的危害,防雷接地系统的设计和施工至关重要。本文将介绍防雷接地的施工工艺和防雷施工方案,强调专业和符合国家标准的方法,…

chatgpt赋能python:Python中乘方运算符号:用于数学计算和科学计算

Python中乘方运算符号:用于数学计算和科学计算 简介 乘方运算是Python中常用的数学运算符,通常在数学计算和科学计算中使用。在Python中,乘方运算符用**表示。该运算符用于计算数字的指数幂。 用法 乘方运算符可以用于两个数字之间的计算…

vue开发环境搭建-win7

vue开发环境搭建-win7 1. 安装node,js2. 设置node global(全局)和cache(缓存)路径3. 配置环境变量4. 基于 Node.js 安装cnpm(淘宝镜像)5. 安装vue6. 安装vue脚手架 vue-cli7. 项目创建8. 添加相关依赖9. 修改端口号10. 运行项目 1. 安装node,js 下载no…

docker版jxTMS使用指南:python服务之内置自动机

本文讲解4.0版的jxTMS中python服务的内置自动机,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容 docker版本的使用,请参考:docker版jxTMS使用指南 4.0版jxTMS中python服务是一个采集前端数据的接口机。其…

【FreeMarker】学习笔记

【FreeMarker】学习笔记 【一】FreeMarker概述【1】FreeMarker概念【2】FreeMarker特性(1)通用目标(2)强大的模板语言(3)通用数据模型(4)为Web准备(5)强大的X…

opencv_c++学习(三十)

一、加载深度神经网络模型 Net cv:dnn::readNet(const String & model, const String & config "", const String & framework "")model:模型文件名称 config:配置文件名称 framework:框架种类 Net类中的函数名称以及作用: 向…

Eplan使用过程中的知识点1

一、新建时的几种标准模板 EPLAN中的符号库符合国际标准,分为单线图和原理图符号库。 符号库符合GB(国标)、IEC(国际标准)、NFPA(美国标准)和GOST(俄罗斯标准)4大标准。…

排水管网监测预警系统:全面感知管网运行态势

城市排水管网是城市基础设施系统中至关重要的一部分,它负责将雨水和废水排出城市,维持城市的正常运行。然而,随着管网的老化和城市扩张,排水管网出现了越来越多的问题,如泄漏、堵塞和损坏,给城市环境和公共…

一、机器人传动方式

1、齿轮传动 齿轮的最重要属性就是它的齿数。齿轮是根据齿数分类的。齿轮通常不会单独使用,齿 轮的基本属性就是可以将运动从一根轴传到其它轴上。 利用齿轮改变转速 利用齿轮改变转动方向 将旋转运动改变为直线运动 带自锁的涡轮蜗杆传动 齿轮可以用来传递力、增加…