- 众所周知,push_back有时需要花费O(1)。所以我们应该创建像:
这样的矢量std::vector<T> v(n); // With n is number we guess the instances T will be used.
v.size() == n
答案 0 :(得分:6)
您发布的代码将默认构造n
T
个实例,而不仅仅为它们分配内存。根据{{1}}的不同,这可能会带来很多不必要的开销。如果您只想分配内存以便不需要调整矢量大小,则应使用reserve
:
T