【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
在这里插入图片描述
它们越界都会报错,但是报错的方式是不一样的
在这里插入图片描述
在这里插入图片描述
一个是程序强制终止,一个是抛异常
我们想给一个对象中增加内容,可以用下面这几种方式
在这里插入图片描述
当然最方便的还是+=
我们如果想在键盘中读入带空格的一行,可以用下面的方法
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flask+ansible 打造自己的自动化运维平台

一、前言 随着企业信息化要求越来越高&#xff0c;云化架构带来挑战和冲击&#xff0c;海量设备的运维压力也是越来越大&#xff0c;虽然有了批量操作工具&#xff0c;但自动化运维工具操作主要还是依赖于手工执行&#xff08;脚本小子&#xff09;&#xff0c;手工执行又存在着…

云计算管理-linux

1.权限 基本权限与归属 访问权限 读取&#xff1a;允许查看内容-read r 写入&#xff1a;允许修改内容-write w 可执行&#xff1a;允许运行和切换-excute x 对于文本文件&#xff1a; r读取权限&#xff1a;cat、less、grep、head、tail w写入权…

推荐在线PS修图网页版工具PHP网站源码

在线PS修图网页版工具PHP网站源码&#xff0c;PHP在线照片图片处理PS网站程序源码photoshop网页版。 有很多朋友们都是在用PS作图的&#xff0c;众所周知在使用和学习PS时是需要下载软件的&#xff0c;Photoshop软件对电脑配置也是有一定要求的&#xff0c;今天就为大家带来一…

消息队列RabbitMQ.01.安装部署与基本使用

目录 RabbitMQ的作用 Message queue 释义 问题思考 存在的问题 优化方案 案例分析 带来的好处 消息队列特点 Email邮件案例分析 Docker安装部署RabbitMQ 1.下拉镜像 2.运行RabbitMQ 3.打开防火墙端口号并重新运行防火墙 4.容器启动后,可以通过 docker logs 容器 查…

TCP和SSL/TLS 协议通信原理

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;双非大四&#xff0c;Java实习中…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&a…

Python | 七、栈 Stack、队列 Queue

栈的基础知识 是一种数据结构&#xff0c;在Python中常使用列表来模拟实现特点&#xff1a;先进后出 栈的基本操作 因为Python中通过列表模拟实现栈&#xff0c;所以以下的基本操作实际是列表的一些操作获取长度&#xff0c;使用len(stack)方法进栈&#xff0c;使用stack.app…

自然语言处理的崛起:从初步分析到深度理解

自然语言处理&#xff08;NLP&#xff09;是计算机科学、人工智能和语言学的交叉领域&#xff0c;旨在让计算机能够理解和生成人类语言。随着时间的推移&#xff0c;NLP 经历了一系列革命性的变化&#xff0c;从简单的规则和模式匹配到如今的深度学习模型&#xff0c;它们使计算…

API调试?试试Apipost

你是否经常遇到接口开发过程中的各种问题&#xff1f;或许你曾为接口测试与调试的繁琐流程而烦恼。不要担心&#xff01;今天我将向大家介绍一款功能强大、易于上手的接口测试工具——Apipost&#xff0c;并带你深入了解如何玩转它&#xff0c;轻松实现接口测试与调试。 什么是…

Mysql索引的初步认识

索引基本概念 1、什么是MySQL 索引 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引表找到该行数…

怎么把一个已经压缩好的大容量的压缩包,分卷后发给别人

环境&#xff1a; Win10 专业版 7Z 360压缩 问题描述&#xff1a; 怎么把一个已经压缩好的大压缩包&#xff0c;分卷 解决方案&#xff1a; 使用压缩软件&#xff1a;许多常用的压缩软件&#xff0c;如WinRAR、7-Zip等&#xff0c;都支持将大的压缩包分卷压缩。您可以使…

Android状态栏布局隐藏的方法

1.问题如下&#xff0c;安卓布局很不协调 2.先将ActionBar设置为NoActionBar 先打开styles.xml 3.使用工具类 package com.afison.newfault.utils;import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graph…

聚道云软件连接器实现航信与用友NC凭证对接,助力企业实现数字化转型

客户介绍&#xff1a; 某自然资源产业集团有限公司是一家专注于自然资源产业的领军企业。自成立以来&#xff0c;该企业始终致力于矿产资源、土地整理和生态修复等领域的业务发展。该企业凭借其卓越的业绩和良好的社会声誉&#xff0c;赢得了广泛的认可与赞誉。 客户痛点&…

8-Python 工匠:使用装饰器的技巧

Python 工匠&#xff1a;使用装饰器的技巧 前言 这是 “Python 工匠”系列的第 8 篇文章。[查看系列所有文章] 装饰器 (Decorator) 是 Python 里的一种特殊工具&#xff0c;它为我们提供了一种在函数外部修改函数的灵活能力。它有点像一顶画着独一无二 符号的神奇帽子&#x…

记一次低级且重大的Presto运维事故

本文纯属虚构&#xff0c;旨在提醒各位别犯类似低级错误。 如有雷同&#xff0c;说的就是你&#xff01; 文章目录 前言事件回顾后续总结 前言 首先&#xff0c;要重视运维工作和离职人员的交接工作&#xff0c;这个不必多说。一将无能&#xff0c;累死三军&#xff01; 接下来…

密码学的100个基本概念

密码学作为信息安全的基础&#xff0c;极为重要,本文分为上下两部分&#xff0c;总计10个章节&#xff0c;回顾了密码学的100个基本概念&#xff0c;供小伙伴们学习参考。本文将先介绍前五个章节的内容。 一、密码学历史 二、密码学基础 三、分组密码 四、序列密码 五、哈希…

springboot整合MongoDB实战

目录 环境准备 引入依赖 配置yml 注入mongoTemplate 集合操作 文档操作 创建实体 添加文档 查询文档 更新文档 删除文档 环境准备 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-da…

深度学习(3)--递归神经网络(RNN)和词向量模型Word2Vec

目录 一.递归神经网络基础概念 二.自然语言处理-词向量模型Word2Vec 2.1.词向量模型 2.2.常用模型对比 2.3.负采样方案 2.4.词向量训练过程 一.递归神经网络基础概念 递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题&#xff0c;处理诸如树、图这样…

畅游创新之源!打开谷歌浏览器默认链接https://discovery.lenovo.com.cn/home/baidu/v1/c2的完美指南!

谷歌浏览器怎么默认打开https://discovery.lenovo.com.cn/home/baidu/v1/c2 打开联想电脑管家&#xff0c;点安全防护&#xff0c;把浏览器保护关闭就行了

NAT地址转换协议

目录 NAT应用场景静态NAT动态NATNAPTEasy IPNAT服务器 点击跳转NAT配置&#xff08;动态nat&#xff0c;静态nat&#xff0c;Easy IP&#xff09; NAT应用场景 - 随着网络设备的数量不断增长&#xff0c;对IPv4地址的需求也不断增加&#xff0c;导致可用IPv4地址空间逐渐耗尽…

13. VTK采集点法向量标记、平面切割

今天依旧是在摸索医学图像可视化的一天呢。这个笔记主要介绍了VTK上做法向量标记以及做切割平面的方法。 1. 将多边形数据的采集点法向量标记成锥形符号 在读取和使用.stl文件过程中&#xff0c;我们经常要用到法向量。这个例子展示了我们应该如何计算多边形数据的法向量并用v…