C++从零开始的打怪升级之路(day14)

这是关于一个普通双非本科大一学生的C++的学习记录贴

在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料

那么开启正题

今天分享的内容是string类

这里给上官方的文档链接,有需要的可以看看

http://www.cplusplus.com/reference/string/string/?kw=string

下面介绍string类的常用接口

1.string类对象的常见构造

string()               //构造空的string类对象,即取空字符串
string(const char* s)  //用C-string来构造string类对象
string(size_n,char c)  //string类对象中包含n个字符c
string(const string&s) //拷贝构造函数

下面给出例子

void Test1()
{string s1();string s2("hehe");string s3(3, 'a');string s4(s2);
}

2. string类对象的容量操作

size()     //返回字符串有效字符长度
length   //返回字符串有效字符长度
capacity //返回空间总大小
empty    //检测字符串释放为空串,是返回true,否则返回false
clear    //清空有效字符
reserve  //为字符串预留空间
resize   //将有效字符的个数该成n个,多出的空间用字符c填充

这里比较简单不再演示,说明一些注意事项

1.size()与length()方法底层原理完全相同,引入size()是为了与其他容器的接口保持一致,一般情况都是用size()

2.clear()只是将string中的有效字符清空,不改变底层空间大小

3. resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字 符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的 元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大 小,如果是将元素个数减少,底层空间总大小不变

4. reserve(size_t res_arg=0):为string预留空间,不改变有效元素个数,当reserve的参数小于 string的底层空间总大小时,reserver不会改变容量大小

3. string类对象的访问及遍历操作

operator[]    //返回pos位置的字符,const string类对象调用
begin + end   //begin获取一个字符的迭代器+end获取最后一个字符下一个位置的迭代器
rbegin + rend //begin获取一个字符的迭代器+end获取最后一个字符下一个位置的迭代器
范围for       //C++11支持更简洁的范围for的新遍历方式

4. string类对象的修改操作

push_back  //在字符串后尾插字符c
append     //在字符串后追加一个字符串
operator+= //在字符串后追加字符串str
c_str      //返回C格式字符串
find + npos//从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置
rfind      //从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置
substr     //在str中从pos位置开始,截取n个字符,然后将其返回

5. string类非成员函数

operator+    //尽量少用,因为传值返回,导致深拷贝效率低
operator>>   //输入运算符重载
operator<<   //输出运算符重载
getline      //获取一行字符串
relational operators  //大下比较

今天的博客就到这里了,后续内容明天分享,最近因为考试周原因不能更新太多内容,等考试周结束了再"快马加鞭"

新手第一次写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!!

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

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

相关文章

qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战

目录 水平滑动条&#xff0c;垂直滑动条 常用信号 进度条 常用信号 修改进度条 例子 rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 水平滑动条&#xff0c…

【Flink】FlinkSQL读取Mysql表中时间字段相差13个小时

问题:Flink版本1.13,在我们使用FlinkSQL读取Mysql中数据的时候,发现读取出来的时间字段中的数据和Mysql表中的数据相差13个小时,Mysql建表语句及插入的数据如下; CREATE TABLE `mysql_example` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 自增ID, `name` v…

Java-初识正则表达式 以及 练习

目录 什么是正则表达式&#xff1f; 1. 正则表达式---字符类&#xff08;一个大括号匹配一个字符&#xff09;&#xff1a; 2. 正则表达式---预字符类&#xff08;也是匹配一个字符&#xff09;&#xff1a; 正则表达式---数量词 &#xff08;可以匹配多个字符&#xff09;…

【前后端的那些事】15min快速实现图片上传,预览功能(ElementPlus+Springboot)

文章目录 Element Plus SpringBoot实现图片上传&#xff0c;预览&#xff0c;删除效果展示 1. 后端代码1.1 controller1.2 service 2. 前端代码2.1 路由创建2.2 api接口2.2 文件创建 3. 前端上传组件封装 前言&#xff1a;最近写项目&#xff0c;发现了一些很有意思的功能&…

网络安全产品之认识WEB应用防火墙

随着B/S架构的广泛应用&#xff0c;Web应用的功能越来越丰富&#xff0c;蕴含着越来越有价值的信息&#xff0c;应用程序漏洞被恶意利用的可能性越来越大&#xff0c;因此成为了黑客主要的攻击目标。传统防火墙无法解析HTTP应用层的细节&#xff0c;对规则的过滤过于死板&#…

速盾网络:高防ip是什么

速盾网络&#xff1a;高防IP是什么 在当今信息化社会中&#xff0c;网络安全问题日益突出&#xff0c;各种网络攻击威胁层出不穷。为了保护企业的网络安全&#xff0c;提高网络业务的稳定性&#xff0c;高防IP应运而生。那么&#xff0c;什么是高防IP呢&#xff1f; 高防IP是…

Jackson标签的高阶使用样例--多继承/子类、对象id、JsonIdentityInfo、JsonTypeInfo、JsonSubTypes

1. 背景 最近笔者在开发大数据平台XSailboat 的 数据资产目录 模块。它的其中一个功能是能定义并查看资产数据。我们支持的资产类型不仅有关系数据库表&#xff0c;也支持Kafka主题&#xff0c;hdfs上的文件等。对于Kafka主题&#xff0c;hdfs文件等&#xff0c;它们没有强模式…

CSS Position总结:定位属性的实战技巧

CSS Position总结&#xff1a;定位属性的实战技巧 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在今天的文章中&#xff0c;我们将深入研究CSS中一个至关重要的属…

移动云助力智慧交通数智化升级

智慧交通是在整个交通运输领域充分利用物联网、空间感知、云计算、移动互联网等新一代信息技术&#xff0c;综合运用交通科学、系统方法、人工智能、知识挖掘等理论与工具&#xff0c;以全面感知、深度融合、主动服务、科学决策为目标&#xff0c;推动交通运输更安全、更高效、…

软件设计师5--CISC与RISC

软件设计师5--CISC与RISC 考点1&#xff1a;CISC与RISC有什么不同考点2&#xff1a;CISC与RISC比较&#xff0c;分哪些维度例题&#xff1a; 考点1&#xff1a;CISC与RISC有什么不同 考点2&#xff1a;CISC与RISC比较&#xff0c;分哪些维度 例题&#xff1a; 1、以下关于RISC…

微信小程序安卓系统下Input输入内容上移错位问题的解决办法

在较长的表单中&#xff0c;页面可能需要滑动&#xff0c; 在这种情况下&#xff0c;在苹果手机上使用Input显示正常&#xff0c;但是在安卓手机上就会出现输入内容上移错位的问题,严重影响使用 需要设置一个状态控制scroll-view是否允许滑动&#xff0c;当Input获取焦点是&am…

SD-WAN组网设计原则:灵活、安全、高效

在实现按需、灵活和安全的SD-WAN组网方案中&#xff0c;我们必须遵循一系列关键的设计原则&#xff0c;以确保网络的可靠性和效率。通过以下几点设计原则&#xff0c;SD-WAN能够满足企业对灵活性、安全性和高效性的迫切需求。 灵活的Overlay网络互联 SD-WAN通过IP地址在站点之间…

Unicode编码

文章目录 前言一、Unicode &#xff1f;二、前端工程师使用Unicode三、Javascript中处理 Unicode总结 前言 一、Unicode &#xff1f; Unicode 是一种字符编码标准&#xff0c;旨在为世界上所有的字符&#xff08;包括各种语言、符号和特殊字符&#xff09;提供唯一的数字标识…

UniAPP社区论坛项目实战--社区服务 API 接口文档

社区服务 API 接口文档 社区服务 API 接口文档基础相关信息一、广告管理1.1 查询所有广告位1.2 获取一个广告位的广告列表1.3 批量获取广告列表 二、动态管理2.1 批量获取动态列表信息2.2 获取指定 ID 动态详情2.3 创建一条动态2.4 点赞、取消点赞、点赞列表 当前动态2.5 评论指…

深度求索开源国内首个 MoE 大模型 | DeepSeekMoE:在专家混合语言模型中实现终极专家专业化

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 在大语言模型时代&#xff0c;混合专家模型&#xff08;MoE&#xff09;是一种很有前途的架构&#xff0c;用于在扩展模型参数时管理计算成本。然而&a…

旅游项目day03

1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口&#xff0c;接受前端传入的参数&#xff0c;创建新的用户对象&#xff0c;保存到数据库。 接口设计&#xff1a; 实现步骤&#xff1a; 手机号码唯一性校验&#xff08;后端一定要再次校验手机号唯一性&#xff09…

Vray渲染效果图材质参数设置

渲染是创造出引人入胜视觉效果的关键步骤&#xff0c;在视觉艺术领域尤为重要。不过&#xff0c;渲染作为一个资源密集型的过程&#xff0c;每当面对它时&#xff0c;我们往往都会遭遇到时间消耗和资源利用的巨大挑战。幸运的是&#xff0c;有几种方法能够帮助我们优化渲染&…

【51单片机】数码管的静态与动态显示(含消影)

数码管在现实生活里是非常常见的设备&#xff0c;例如 这些数字的显示都是数码管的应用。 目录 静态数码管&#xff1a;器件介绍&#xff1a;数码管的使用&#xff1a;译码器的使用&#xff1a;缓冲器&#xff1a; 实现原理&#xff1a;完整代码&#xff1a; 动态数码管&#…

centos 升级 openssh 到9.4p1版本

#参考网站 https://leheavengame.com/article/65a29edae7b7e20d2e1fbf7c 操作步骤 将openssl-1.1.1t.tar.gz openssh-9.4p1.tar.gz 和此脚本&#xff0c; 提前上传到服务器&#xff0c; 如果yum是内网源 &#xff0c;进入 cd /etc/yum.repos.d/ 下&#xff0c;删除无关的源&…

Python语法回答5:文件+进程+异常+枚举

文件 处理文件的基本操作有哪些步骤 打开文件文件处理&#xff08;如读写&#xff09;关闭文件 文件读写的常用函数是什么 读 file.read()file.readline()file.readlines() 写 file.write()file.writelines() 文件读写的常用模式有哪些 wwwbwbrrrbrbaa with语句文件操…