c++ - vector::push_back 什么时候增加容量?

标签 c++ stdvector

我正在使用一堆 std::vectors,方法是在开始时设置它们的容量,然后使用 push_back 慢慢填充它们。这些 vector 中的大多数将具有相同的大小(16 个元素),尽管有些 vector 可能会变大。如果我在大小为 0 且容量最初为 16 的 vector 上使用 push_back 16 次,我能否确定在 push_backs 之后容量恰好为 16?

最佳答案

是的——一旦您保留了特定的容量, vector 将不会被重新分配,直到您超过您设置的容量1。没有具体说明在不重新分配的情况下您还可以推送多少项,但可以保证至少有那么多。


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

关于c++ - vector::push_back 什么时候增加容量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900104/

相关文章:

c++ - std::vector 作为模板函数参数

c++ - 将 unique_ptr 的 vector 传递给函数,const 引用

c++ - 如何在不丢失顺序的情况下将 std::vector 转换为 std::set

c++ - 无法将套接字对象移动到 std::vector

c++ - winapi 中列表框的非常简单的示例

c++ - 在 C++11 中双重检查锁定?

c++ - cudaHostAllocMapped 是否也在设备上分配缓冲区?

c++ - 使用 static_cast(或 reinterpret_cast)进行不添加成员的继承的无效向下转换的安全性

c++ - 求助于 std::vector 与 std::insert

c++ - 用于平铺矩阵乘法的 AVX 内在函数