【摘要】: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类型对象包括三种求解大小的函数: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
例2-2的执行效果如图2-2所示。(www.xing528.com)
图2-2 例2-2的执行效果
由例2-2可知,string类型对象str_custom调用reserve()函数时,似乎并没有起到重新分配内存的目的(笔者所用编译器为Visual C++6.0)。
修改上述代码,删除语句str_custom.reserve(5),在代码str_custom=str之后如下添加代码:
修改后程序的执行效果如图2-3所示。
图2-3 例2-2修改后程序的执行效果
重新设置string类型对象str_custom的大小之后,重新求解str_custom的大小,由图2-3可知,其执行效果与设置的数值一致(均为5)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。