我们应该创建具有固定大小的向量,然后如果需要更多或不初始化则创建push_back

时间:2017-05-11 12:43:26

标签: c++ vector

- 众所周知,push_back有时需要花费O(1)。所以我们应该创建像:

这样的矢量
std::vector<T> v(n); // With n is number we guess the instances T will be used.  
  • 然后,如果我们需要更多,我们将在v.size() == n
  • 时使用push_back
  • 我认为它的性能比我们在需要时使用push_back更好 无论如何,谢谢!

1 个答案:

答案 0 :(得分:6)

您发布的代码将默认构造n T个实例,而不仅仅为它们分配内存。根据{{​​1}}的不同,这可能会带来很多不必要的开销。如果您只想分配内存以便不需要调整矢量大小,则应使用reserve

T