【C++初阶】:string类

news/2024/10/21 10:17:11/

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.ppmy.cn/news/106478.html

相关文章

MySQL CAST 函数与 CONVERT 函数

文章目录 CAST 函数与 CONVERT 函数1. 数字和小数点组成的字符串转换为整型2. 非数值字符串转换为整型3. 把整型转换为二进制4. 数字和小数点组成的字符串转换为浮点型 CAST 函数与 CONVERT 函数 前面我们介绍的两个函数用于字符串和日期类型之间进行相互转换,有时我…

搭建后台管理系统模板(v3+ts+vite)

目录 项目初始化 环境准备 初始化项目 项目配置 一、eslint配置 .eslint.cjs配置文件 vue3环境代码校验插件 安装指令 修改.eslintrc.cjs配置文件 .eslintignore忽略文件 1.4运行脚本 二、配置prettier 2.1安装依赖包 2.2.prettierrc.json添加规则 2.3.prett…

(一)浅谈微服务概念理解

1.什么是微服务 让我们以一个餐厅为例来解释微服务的概念。 想象一家传统的餐厅,它有一个集中式的厨房,所有的菜品都在同一个厨房中准备和烹饪。这个厨房负责接收顾客的点餐请求,准备食材,烹饪菜品,并最终将菜品交给…

【面试集锦 - 汽车电子 - 功能安全】

功能安全 在汽车电子行业中,功能安全是指确保车辆电子系统在发生故障时能够继续执行其所需的安全功能的能力。由于现代汽车中的电子系统在安全性、可靠性和性能方面起着关键作用,因此功能安全成为了汽车电子行业中的重要概念。 功能安全的目标是防止或…

浏览器兼容性:JavaScript polyfill

由于 JavaScript API 有自己的规范,因此并非所有浏览器都同时支持特定规范。因此,我们必须提供 API 的补丁版本,以确保它仍然可以在不原生支持它的浏览器上运行。这种补丁称为 polyfill。 比如为 Safari 15.4 之前提供 Array 的at()方法的补…

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

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

【SA8295P 源码分析】10 - HQX Display(OpenWFD)介绍

【SA8295P 源码分析】10 - HQX Display(OpenWFD)介绍 一、HQX Display 介绍1.1 OpenWF Display Driver二、HQX Display Bringup2.1 qcdisplaycfg.xml 配置文件2.1 配置两个 DPUs in QNX2.1.1 配置 graphics_ADP_STAR.conf2.1.2 配置 qcdisplaycfg_xxx.xml系列文章汇总见:《【…

Nodejs安装以及环境变量配置

Nodejs安装以及环境变量配置 1.下载Nodejs1.1最新版下载1.2历史版本下载 2.安装3.验证4.环境变量配置5.npm下载设置6.测试6.设置国内镜像提高下载速度 1.下载Nodejs 1.1最新版下载 直接官网下载:https://nodejs.org/zh-cn/download 根据自己的需求,选择…