vector :: push_back何时增加容量?

zou*_*nds 3 c++ stdvector

std::vectors通过在开始时设置容量并使用push_back慢慢填充它们来使用一堆.大多数这些矢量将具有相同的大小(16个元素),尽管有些可能会变大.如果我push_back在最初为0和容量为16的向量上使用16次,我可以确定容量将在16之后正好是16 push_backs吗?

Jer*_*fin 7

是 - 一旦您保留特定容量,在超过您设置的容量1之前,不会重新分配向量.确切地说,如果没有重新分配,您可以推送多少项目,但是至少保证那么多.


  1. 特别是,向量中的指针和迭代器保证在超过指定容量之前保持有效.