string中有两个函数:reserve()和resize(),最近细细的看了下这两个函数的使用,记录下来。
reserve为容器预留足够的空间,避免不必要的重复分配,分配空间大于等于函数的参数,影响capacity。
resize调整容器中有效数据区域的尺寸,如果尺寸变小,原来数据多余的截掉。若尺寸变大,不够的数据用该函数第二个参数填充,影响size。
(1)reserve代码如下:
为str3初始分配空间,15。
调用reserve()函数后,空间变为31,即保留空间变大了(string内存分配按照:(n*16-1)分配)。
(2)resize代码如下:
a、尺寸变小
尺寸由6改变为2,多余字符被截掉了,结果如下:
b、尺寸变大,可以给一个填充参数。尺寸由6变大到10,4个空位填充b(默认参数为0,即NULL或者’\0′)。;
哈哈,当有疑问时,敲两行代码最实用了。