首页 理论教育 String对象的求解、长度、最大字符数和重新设置大小

String对象的求解、长度、最大字符数和重新设置大小

时间:2023-10-25 理论教育 版权反馈
【摘要】:String类型对象包括三种求解大小的函数:size()和length();maxsize();capacity()。一旦程序使用长度超过max_size()的string操作,编译器会抛出length_error异常。该函数返回在重新分配内存之前,string类型对象所能包含的最大字符数。重新分配的大小由其参数决定。reserve()的默认参数为0。例2-2例2-2的执行效果如图2-2所示。图2-3 例2-2修改后程序的执行效果重新设置string类型对象str_custom的大小之后,重新求解str_custom的大小,由图2-3可知,其执行效果与设置的数值一致(均为5)。

String对象的求解、长度、最大字符数和重新设置大小

String类型对象包括三种求解大小的函数:size()和length();maxsize();capacity()。

1)size()和length()。这两个函数会返回string类型对象中的字符个数,且它们的执行效果相同。

2)max_size()。max_size()函数返回string类型对象最多包含的字符数。一旦程序使用长度超过max_size()的string操作,编译器会抛出length_error异常。

3)capacity()。该函数返回在重新分配内存之前,string类型对象所能包含的最大字符数。

string类型对象还包括一个reserve()函数。调用该函数可以为string类型对象重新分配内存。重新分配的大小由其参数决定。reserve()的默认参数为0。

下面以例2-2说明上述几个函数的使用方法。

例2-2

978-7-111-51399-5-Chapter02-16.jpg

978-7-111-51399-5-Chapter02-17.jpg

例2-2的执行效果如图2-2所示。(www.xing528.com)

978-7-111-51399-5-Chapter02-18.jpg

图2-2 例2-2的执行效果

由例2-2可知,string类型对象str_custom调用reserve()函数时,似乎并没有起到重新分配内存的目的(笔者所用编译器为Visual C++6.0)。

修改上述代码,删除语句str_custom.reserve(5),在代码str_custom=str之后如下添加代码:

978-7-111-51399-5-Chapter02-19.jpg

修改后程序的执行效果如图2-3所示。

978-7-111-51399-5-Chapter02-20.jpg

图2-3 例2-2修改后程序的执行效果

重新设置string类型对象str_custom的大小之后,重新求解str_custom的大小,由图2-3可知,其执行效果与设置的数值一致(均为5)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈