String类的接口模块

本文详细探讨了C++中String对象的构造方法,包括默认构造、初始化构造、拷贝构造等,并重点讲解了容量相关的操作如size、capacity、empty、clear、resize和reserve等函数的用法。resize函数可以调整字符串有效字符的个数,增加时可指定填充字符,减少时不改变容量。reserve函数则用于更改底层空间的容量,增长时会扩大空间,但缩小时容量是否减小由系统决定。
摘要由CSDN通过智能技术生成

String接口分以下几个模块

(1)构造与析构(2)容量相关(3)迭代器(4)元素访问相关的(5)修改(6)特殊操作

这篇博客主要谈谈构造和容量相关的

首先看看构造模块:这个模块主要说String类所定义的对象的初始化问题,

	string s1;//定义s1对象,无初始化内容
	string s2("hello world");//定义s2对象,()内表示初始化内容
	string s3(s2, 3);//定义s3对象,选择s2中第三个以后的字符串初始化对象
	string s4(10, 'a');//定义s4对象,使用10个字符a来进行初始化
	string s5(s2);//定义s5对象,相当于拷贝构造函数

接下来看容量相关的,通过监视窗口查看上面代码定义的s2对象:

 可以看到String类定义的对象中包含size和capacity两个变量,基本上和顺序表相似,其中size表示字符串的长度,capacity表示容量,底层空间的大小。

现在介绍String类关于容量相关的操作:

s2.length();//字符串的长度,不包括‘\0’.
s2.size();//字符串的长度,不包括‘\0’.
s.capacity;()//容量
s.empty();//检测是否为空字符串
s.clear();//清空有效字符
s.resize(size_t newsize,char c);//调整有效字符的个数
s.resize(size_t newsize);//调整有效字符的个数
s.reserve(size_t newcapacity);// 扩容

主要介绍resize()和reserve()两个函数

(1)resize():

首先此函数的意思是调整有效字符的个数,那么就有两种情况(增大和缩小),就增大来说,此函数有两种类型,区别就是指定增长的部分使用什么了填充,如果指定元素那么就使用该元素填充,不指定使用'\0'来填充,当size增长时,如果容量不够系统会自动扩容。对缩小来说,缩小有效字符个数,size减小,但是系统不会将容量减小。

(2)reserve()

此函数是改变底层空间的容量,也有增大缩小两种情况,如果要增大,直接在括号中指定增大后的个数,系统会增大容量,但是对于减小来说,如果newcapacity>=oldcapacity,系统不会将空间减小,如果newcapacity<oldcapacity,那么系统会减小容量,但是具体减多少由系统来定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小明学编程~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值