假设我们需要在std :: vector中存储大量给定类型的对象。元素的数量仅在运行时期间已知,但一旦确定就不会更改。
之间的性能是否有明显差异创建一个空向量,然后用push_back填充它?
/* Variant a*/
std::vector<foo> vector_a;
for(int i = 0; i < NumOfElems; i++){ // NumOfElems is known
vector_a.push_back(GetNextElem());
}
/* Variant b */
std::vector<foo> vector_b(NumOfElems);
for(int i = 0; i < NumOfElems; i++){
vector_b[i] = GetNextElem();
}
我想知道使用 push_back 是否有任何开销直接访问elemens,当大小固定并且已知时可以避免。
谢谢。