我正在使用一堆 std::vectors
,方法是在开始时设置它们的容量,然后使用 push_back
慢慢填充它们。这些 vector 中的大多数将具有相同的大小(16 个元素),尽管有些 vector 可能会变大。如果我在大小为 0 且容量最初为 16 的 vector 上使用 push_back
16 次,我能否确定在 push_backs
之后容量恰好为 16?
最佳答案
是的——一旦您保留了特定的容量, vector 将不会被重新分配,直到您超过您设置的容量1。没有具体说明在不重新分配的情况下您还可以推送多少项,但可以保证至少有那么多。
- 特别是, vector 中的指针和迭代器保证在您超过指定容量之前保持有效。
关于c++ - vector::push_back 什么时候增加容量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900104/