当一个或多个元素改变大小时, vector 会发生什么变化?
详细说明,
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> v;
v.push_back("first string");
v.push_back("2nd string");
v[0] += " has increased in size";
}
“v[0] += ...”会发生什么?是否会进行大规模重新分配,以保持字符串和 vector 中的内存连续?
最佳答案
vector
中不会重新分配内存,而且几乎肯定会为 string
重新分配内存,尽管标准对此没有任何说明.字符串就像一个 vector ,因为它将内容与字符串对象本身分开。
关于c++ - 更改 vector<string> 中字符串的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362575/