string s,t; s.append(t)跟s+=t是一样的吗?
s+=t会重新生成一个s,效率不是很高
s.append会重新生成吗?
如果会,用什么方法才不会?
string是用动态数组实现也就是char *p = new[n]这样的形式
并且,有size(大小)和capacity(容量)这两个概念。
无论是+=还是append,是否会从新申请容量取决于capacity,这个被称为动态增张技术。
比如当然str = “12345”,size = 5,capacity = 10(假设);
+=或者append操作添加的string如果是“1234”size < 5,那么不需要重新申请空间。
添加的string如果是“123456” size > 5,那么就需要申请更大个capacity,也许是当前两倍(没验证)。