相关疑难解决方法(0)

容量是否在向量中复制?

请使用以下代码:

std::vector<int> a;
a.reserve(65536);
std::vector<int> b(a);  //NOTE: b is constructed from a

a.reserve(65536); // no reallocation
b.reserve(65536);
Run Code Online (Sandbox Code Playgroud)

是否复制了容量?最后一行会有重新分配吗?标准是否对此有所说明或是否保持沉默?

c++ vector

52
推荐指数
2
解决办法
1678
查看次数

向量分配是否使"储备"无效?

假设我写

std::vector<T> littleVector(1);
std::vector<T> bigVector;

bigVector.reserve(100);
bigVector = littleVector;
Run Code Online (Sandbox Code Playgroud)

标准是否bigVector仍然会保留100个元素?或者,如果我要使用push_back99个元素,我是否会体验内存重新分配?也许它甚至在STL实现之间有所不同.

这在此之前已经讨论过,但没有给出标准参考.

c++ language-lawyer

35
推荐指数
3
解决办法
1370
查看次数

标签 统计

c++ ×2

language-lawyer ×1

vector ×1