【C++】-string的介绍以及使用(迭代器的介绍和使用)

文章介绍了C++中的string类,包括其构造函数、修改操作、容量操作以及遍历方法。重点讲解了构造函数的使用、string对象的修改(如find函数)、容量调整(如resize和reserve)以及访问和遍历字符串的不同方式。文章还提到了string类的非成员函数,如流插入和流提取运算符,以及字符串的比较操作。最后,文章强调了理解和熟练使用string类的重要性,以及如何通过模拟实现来进一步理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💖作者:小树苗渴望变成参天大树
❤️‍🩹作者宣言:认真写好每一篇博客
💨作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++
在这里插入图片描述
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!


前言

今天我们来讲一个新的知识,让你开始进入STL的世界,让我们再也不想回到C语言的世界,今天的主要内容是带你体会string类的用法和常用的函数,下一篇在带大家模拟实现这个类,通过底层让大家更好的理解string类,话不多说,我们开始进入正文


一、什么是string类

在我们C语言阶段,我们怎么定义一个字符串?

char*p="nihao,C++";
char s[]="nihao,C++";

我们可以这样定义字符串,我们想要操作这个字符串要调用想要的函数,函数和这个字符串没有任何关系,这显然不符合类和对象的思想,按照我们oop思想,我们的字符串和对应的操作函数应该归为一类,所以这个时候出现了string类,他是管理字符串的一个类,给我们设计了很多操作方便的函数,让我们更好的操作函数,这也是我们为什么要学习string的一个重要原因,可以更好提高开发效率,

其实string就是一个顺序表来存放字符的,在后面的模拟实现也是和顺序表的定义是一样的,这个大家先理解一下。

接下来我带大家来看文档·,初步带大家了解string类,打开搜索string,就出现下面的界面
在这里插入图片描述
我们来看看他实现的函数其实有100多个
在这里插入图片描述
这样函数里面,我们不需要都记得,我会把常用给大家一一介绍展示一下,我们一个个的来看。

1.1类的基本使用

我们先来看看构造函数,string一共是实现7个构造函数,今天就简单的讲解几个:

1.1.1string类构造函数的使用

在这里插入图片描述

    string s1;
	string s2("hello world");
	string s3(s2);
	string s4("nihao,string", 5);
	string s5(5, '@');
	string s6(s2,5,10);

在这里插入图片描述
对于最后一个构造函数我们发现他多了一个缺省参数,我们来看看文档,他具体是什么
在这里插入图片描述

我的理解就是,如果你没有给截取子串的右区间,那么就默认一直截取到字符串的结尾,怎么保证每个字符串都可以截取到结尾,只能使用一个特别大的数来,截取到结尾也就停止了。
在这里插入图片描述
我们看到结果是-1,这里巧用了无符号整型这个关键字,-1其实是整型的最大值,这样就解决我们刚才说的那个问题,大家下来可以自己去测试一下他的效果

1.1.2string类的修改操作

我们来看文档介绍:
在这里插入图片描述

在这里插入图片描述
大家可以具体看看每个函数的功能,有的函数可能实现了运算符重载,有不同的功能,大家可以查文档看看。

对于+=运算符其实可以更好的替代push_back和append。
注意:我们的insert时任意位置的头插,但尽量少用,效率很低,assign这个用的也很少。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
==find:==我们谈到修改函数,为什么会出现一个查找函数呢??原因是我们要修改的位置我们可能并不知道,需要find来定位位置所在,我们的find的函数有4个,我给大家一一介绍一下,我们来看文档:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘柚!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值