我们知道,重分配机制可以在调用
假设我们按以下方式添加元素:
std::vector::push_back()
时为我们分配比实际需要更多的内存。
通常容量增加的倍乘因子是 2 倍或者黄金比例数 ~1.618...。假设我们按以下方式添加元素:
std::vector<int> v;
for(unsigned i = 0; i < 100000; ++i)
{
v.resize(v.size() + 1);
}
如果重新分配内存,向量的容量是否保证“翻倍”?换句话说,“+1 调整大小”是否与 push_back
相同方式分配内存。
还是这完全取决于实现的事情?
resize
与push_back
的比较。 - Chris Drew