<分区>
我想知道当将一个 vector 推到一个 vector 的 vector 上时,容量是否会延续。
假设我有一个代码看起来像
std::vector< std::vector< int > > vec_of_vec;
std::vector< int > tmp;
for (int i = 0 ; i < 100; ++i) {
foo(tmp,i); // fills tmp with an arbitrary number of ints, different for each i.
vec_of_vec.push_back(tmp);
tmp.clear();
}
现在,由于 .clear()
不会减少容量,如果 tmp
的一个特定实例小于 tmp.capacity()
, tmp.capacity()
是否会收缩以适应 tmp.size()
一旦它被推回到 vec_of_vec
上?即哪个构造函数执行 push_back 调用,并且在此过程中修改了容量?