首页 > > > 关于c++的vector内存分配的问题
假如vector中存放100个string(不是指针类型string*,而是string),那么如果vector中的一个string重新分配空间,会不会造成整个vector重新分配空间呢?假如代码如下:
vector<string> *v1 = new vector<string>(100);
v1[20].append("abc");
假设最后一句使v1[20]字符串超出原分配空间,根据string类型的算法,这个字符串会重新分配空间并复制数据,因为它属于v1的,而v1中的元素必须是连续的,所以是不是它也将会造成整个v1重新分配空间并复制数据呢?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4606/viewspace-3154885/ ,如需转载,请注明出处,否则将追究法律责任。