STL初识——string的用法

string

  • 一.string的介绍
  • 二.string的使用
    • 2.1接口(构造类型)
    • 2.2string的遍历和访问
      • 第一种遍历方式
      • 第二种遍历方式
      • 补充(反向迭代器)rbeign,rend
    • 2.2接口(常用函数)
      • 2.2.1反转字符串(reverse)
      • 2.2.2扩容(reserve)
      • 2.2.3扩容+修改(resize)
      • 2.2.5 find和substr
      • 补充npos缺省值

一.string的介绍

string就是字符序列的类模板。我们在以后使用字符的时候,最经常运用的就是sting

二.string的使用

2.1接口(构造类型)

在这里插入图片描述
string的类型非常的多,设计的有些冗余,我们基本上会用上面的四个最重要的也就够了。

2.2string的遍历和访问

我们先补充两个关键字length和size,这两个都是计算字符串长度的关键字,用法相同,我们一般使用size。
在这里插入图片描述

第一种遍历方式

在这里插入图片描述
在这里插入图片描述
这种其实就是我们之前学习的类似于数组下标的访问方式,这种不是我们的重点。

第二种遍历方式

迭代器是我们以后学习的重点,
在这里插入图片描述
我们之后还会学习两个类,一个是vector,一个是list。他们的遍历方式都是只有迭代器的所以我们会了一个后面两个我们也就会了。
在这里插入图片描述
这一种本质上也是迭代器的遍历。
下面我们看看迭代器有多么方便。

vector<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);ls.push_back(4);ls.push_back(5);ls.push_back(6);vector<int>::iterator it = ls.begin();while (it != ls.end()){cout << *it << " ";it++;}cout << endl;list<double> l;l.push_back(1.21);l.push_back(2.21);l.push_back(3.21);l.push_back(4.21);l.push_back(5.21);l.push_back(6.21);l.push_back(7.21);list<double>::iterator l1 = l.begin();while(l1 != l.end()){cout << *l1 << " ";l1++;}cout << endl;

在这里插入图片描述

补充(反向迭代器)rbeign,rend

	string::reverse_iterator it = s1.rbegin();while (it != s1.rend()){cout << *it << " ";it++;}

在这里插入图片描述

反向遍历

2.2接口(常用函数)

2.2.1反转字符串(reverse)

在这里插入图片描述
这种方法过于麻烦,我们在string有了更简便的东西。
在这里插入图片描述
只需要一行就可以解决问题。

2.2.2扩容(reserve)

在这里插入图片描述

2.2.3扩容+修改(resize)

resize既可以改变容量还可以改变其中的值
在这里插入图片描述
在这里插入图片描述

2.2.5 find和substr


find就是从pos位置开始找出符合的字符或字符串。
在这里插入图片描述
substr就是从pos位置开始复制len个长度的字符串,形成新的字符串。
我们可以用这两个组合解决下面的问题,提取出文件的后缀。find找出位置,substr复制出后缀。
在这里插入图片描述

补充npos缺省值

npos就是string中的一个缺省值,可以把它简单的认为是,字符串的最后一个位置。

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

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

相关文章

Windows系统安装OpenSSH+VS Code结合内网穿透实现远程开发

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

私域必看:让你事半功倍的多微信高效管理方法

随着私域运营的需求不断增长&#xff0c;对于使用微信进行运营的企业或个人&#xff0c;高效地管理微信变得越发重要。今天就分享一些高效管理多个微信账号的实用方法&#xff0c;帮你节省时间。 1.巧用标签和分组 微信的标签和分组功能&#xff0c;相信很多人都使用过&#xf…

c++入门语法—————引用,内联函数,auto关键字,基于范围的for循环,nullptr

文章目录 一.引用1.引例2.注意事项3.应用场景1.做参数&#xff08;a:输出型参数b:内容较大参数&#xff09;2.做返回值&#xff08;a:修改返回值&#xff0c;b:减少拷贝&#xff09; 4.引用和指针的区别 二.内联函数1.为什么有内联函数2.用法和底层3.特性 三.auto关键字1.基础示…

R语言(数据导入,清洗,可视化,特征工程,建模)

记录一下痛失的超级轻松的数据分析实习&#xff08;线上&#xff09;&#xff0c;hr问我有没有相关经历&#xff0c;我说我会用jupyter book进行数据导入&#xff0c;清洗&#xff0c;可视化&#xff0c;特征工程&#xff0c;建模&#xff0c;python学和用的比较多&#xff0c;…

[计算机提升] 删除空间占用大的文件(夹)

5.3 删除空间占用大的文件(夹) 5.3.1 hiberfil.sys 说明&#xff1a; 该文件是系统休眠文件。 对策&#xff1a; 使用CMD命令&#xff1a;powercfg -h off关闭休眠&#xff0c;然后重启电脑后该文件则会自动删除。但是电脑以后没有了休眠功能。读者可以根据实际情况进行取舍。…

从理论到实践,如何用TRIZ破解研发中的技术难题?

自科技飞速发展以来&#xff0c;技术问题层出不穷&#xff0c;成为许多企业和研究机构研发过程中难以突破的瓶颈。然而&#xff0c;有一个强大的工具&#xff0c;能帮助我们解决这些问题&#xff0c;那就是TRIZ。 一、TRIZ是什么 TRIZ&#xff0c;全称是"发明问题解决理…

【Java程序设计】【C00178】基于SSM的NBA球队管理系统(论文+PPT)

基于SSM的NBA球队管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的NBA球队管理系统 本系统分为前台用户和后台管理员2个功能模块。 前台用户&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就是首页…

AMC系列可编程智能电测仪表功能以及选型

功能&#xff1a; AMC 系列可编程智能电测仪表是针对电力系统、工矿企业、公用设施、智能大厦的电力监控需求而设计的智能仪表&#xff0c;它集成电力参数的测量(如单相或者三相的电流、电压、有功功率、无功功率、视在功率、频率、功率因数)以及电能监测和考核管理。采用高亮…

20240130在ubuntu20.04.6下给GTX1080安装最新的驱动和CUDA

20240130在ubuntu20.04.6下给GTX1080安装最新的驱动和CUDA 2024/1/30 12:27 缘起&#xff0c;为了在ubuntu20.4.6下使用whisper&#xff0c;以前用的是GTX1080M&#xff0c;装了535的驱动。 现在在PDD拼多多上了入手了一张二手的GTX1080&#xff0c;需要将安装最新的545的驱动程…

精细化客户管理,这篇文章教会您!

如何做好客户精细化管理? 对于企业来说&#xff0c;不止要做到客户拉新&#xff0c;同时&#xff0c;也要做到让新客户变成老客户&#xff0c;让客户多次高频次购买。否则客户如果只是来购买一次&#xff0c;客户回购率低&#xff0c;长期以往&#xff0c;那企业的生存资本&a…

kubernetes-快速部署一套k8s集群

1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式&#xff1a; kubeadm Kubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。 二进制包 从github下载发行…

《CSS3》田字网格背景(外实线内虚线)的实现

一、前言 记录一些有趣的CSS实现方式&#xff0c;总所周知&#xff0c;当一段效果可以通过CSS实现的时候&#xff0c;绝不使用Javascript来实现&#xff0c;因此记录一些有意思的CSS效果&#xff0c;一来是方便自己学习&#xff0c;另一来是方便以后在需要使用到的时候能快速找…

基于YOLOv8深度学习的水稻叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Vue3使用vant检索组件van-search的坑

当清空按钮与检索按钮同时居右时&#xff0c;点击clear清空按钮事件时会同时触发click-right-icon事件,如下配置&#xff1a; <van-searchv-model"form.search"show-actionshape"round"left-icon""right-icon"search"placeholder&…

Python(19)Excel表格操作Ⅰ

目录 导包 读取EXCEL文件 1、获取worksheet名称 2、设定当前工作表 3、输出目标单元格数据 4、工作表.rows&#xff08;行&#xff09; 5、工作表.columns&#xff08;列&#xff09; 小结 导包 要想使用 python 操作 Excel 文件&#xff0c;应当导入 openpyxl 包。在…

03:华为云管理|云主机管理|云项目实战

华为云管理&#xff5c;云主机管理&#xff5c;云项目实战 安全组配置部署跳板机配置yum源&#xff0c;安装软件包优化系统服务安装配置ansible管理主机 模版镜像配置配置yum源&#xff0c;安装软件包优化系统 网站云平台部署实战华为云的负载均衡 安全组配置 设置安全组 云…

【Docker】docker安装jenkins

一、执行命令 下载jenkins镜像 #下载jenkins 镜像 docker pull jenkins/jenkins:latest-jdk8 启动jenkins容器 #启动jenkins 容器 #挂载 如果不挂载 每次启动jenkins的配置、插件、用户等信息都没有了 #jenkins_home 包含jenkins配置、插件、用户等信息。 要指定必须配置用…

【AI视野·今日NLP 自然语言处理论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 12 Jan 2024 Totally 60 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Axis Tour: Word Tour Determines the Order of Axes in ICA-transformed Embeddings Authors Hiroaki Yamagi…

linux离线升级openssh方法

检查openssh版本&#xff1a; 升级前openssh 版本为7.4 openssl 版本为1.0.2k Openssh9.6 所需openssl >1.1.1 因此openssl也需要升级。 为了防止升级失败&#xff0c;无法使用SSH登录&#xff0c;首先安装telnet 预防。查看是否安装了telnet 客户端及服务 未安装tel…

Java - JDBC

Java - JDBC 文章目录 Java - JDBC引言JDBC1 什么是JDBC2 MySQL数据库驱动3 JDBC开发步骤4 具体介绍 引言 思考: 当下我们如何操作数据库&#xff1f; 使用客户端工具访问数据库&#xff0c;手工建立连接&#xff0c;输入用户名和密码登录。编写SQL语句&#xff0c;点击执行…