当前位置: 首页 > news >正文

【C++】string的基本使用二

我们接着上一篇的迭代器说起,迭代器不只有正向的,还有反向的,就是我们下边的这两个
在这里插入图片描述
在这里插入图片描述
它的迭代器类型也是不同的
rbegin就是末尾,rend就是开头,这样我们想遍历一个string对象的话就可以这样做

int main() {string s1("abcdefghijk");string::reverse_iterator it = s1.rbegin();while (it != s1.rend()) {cout << *it << ' ';it++;}cout << endl;return 0;
}

当然如果我们遇到const对象就要用const版本的迭代器
在这里插入图片描述
一个类型竟然有这么长,这就让我们想起来之前学的auto关键字,它可以自动去匹配类型
在这里插入图片描述
它们是等价的,确实可以方便不少,但同时也带来了问题,就是我不能通过这一条语句知道这个迭代器是const版本的,我还要去看前边的语句才可以
这时库中确实还有其他版本的迭代器
在这里插入图片描述
前边加个c确实就表明这个迭代器是const版本的了,但我们用到确实也是比较少,我们只需要知道就可以了
下一个是我们string中的capacity
在这里插入图片描述
这里的capacity就是给我们的对象分配了多大的空间,分配了这么多空间只要没用完就不需要扩容,下面我们看一下VS2019和g++的扩容机制
在这里插入图片描述
我们可以看到这整体上是1.5倍扩容
在这里插入图片描述
在g++下是2倍扩容
下一个是reserve
在这里插入图片描述
reserve是保留的意思,就是保留多少空间的意思,这个有较大作用的地方就是知道要用多少空间然后提前开好,就可以省去扩容时间
下一个是resize
在这里插入图片描述
这个一听就是改变size,如果让size变大的话,后边会补上’\0’,如果让size变小的话,它是会影响到数据的
访问数据不仅可以用下标加方括号,也可以用at
在这里插入图片描述
它们越界都会报错,但是报错的方式是不一样的
在这里插入图片描述
在这里插入图片描述
一个是程序强制终止,一个是抛异常
我们想给一个对象中增加内容,可以用下面这几种方式
在这里插入图片描述
当然最方便的还是+=
我们如果想在键盘中读入带空格的一行,可以用下面的方法
在这里插入图片描述

http://www.lryc.cn/news/285605.html

相关文章:

  • MATLAB解决考研数学一题型(上)
  • Vue以弹窗形式实现导入功能
  • 分布式锁原理及实现
  • 蓝桥杯官网填空题(海盗与金币)
  • JavaScript 中JSON 字符串和对象之间的转换。
  • All the stories begin at installation
  • Linux文件系统与设备文件
  • QT的绘图系统QPainterDevice与文件系统QIODevice
  • Spark流式读取文件数据
  • Leetcode 3011. Find if Array Can Be Sorted
  • Databend 开源周报第 129 期
  • python 正则表达式学习(1)
  • 安全防御-基础认知
  • 各省税收收入、个人和企业所得税数据,Shp、excel格式,2000-2021年
  • Vue记录
  • 【JavaEE进阶】 Spring Boot⽇志
  • 《GitHub Copilot 操作指南》课程介绍
  • 结构体(C语言)
  • HNU-数据挖掘-实验1-实验平台及环境安装
  • JavaEE中的监听器的作用和工作原理
  • Webpack5入门到原理1:前言
  • #vue3 实现前端下载excel文件模板功能
  • 《WebKit 技术内幕》之五(3): HTML解释器和DOM 模型
  • 136基于matlab的自适应滤波算法的通信系统中微弱信号检测程序
  • 【Linux】权限 !
  • axios原理
  • epoll
  • AEB滤镜再破碎,安全焦虑「解不开」?
  • 深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?
  • 无限商机、拓全国、赢未来!2024上海国际轴承展重磅来袭!