c++ - sizeof() std::vector (C++)

标签 c++ vector sizeof

关于这个主题已经有一个主题,但我仍然有疑问。计算一个 vector 的大小,哪个是正确的:

sizeof(VEC) + sizeof(int) * VEC.capacity()

VEC.capacity() * (sizeof(VEC) + sizeof(int))

最佳答案

vector 的大小是什么意思? vector对象的大小刚好

sizeof(vec);

如果你对 vector 在堆上分配了多少内存感兴趣,你可以使用

vec.capacity()*sizeof(T)

因此,如果您添加这些,您将获得由于 vector 而“丢失”了多少内存。

vec.capacity()*sizeof(T) + sizeof(vec)

请注意,具体分配多少内存取决于具体实现。只是上面的公式在大多数(如果不是全部)实现上实际上是正确的(或近似正确的)。

关于c++ - sizeof() std::vector (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778091/

相关文章:

java - Vector 同步和 Vector 如何通过将数组大小加倍来增加其大小

c++ - 来自静态成员函数的 sizeof C++ 类

c++ - 运算符-类的重载

c++ - OLE/COM 对象查看器报告 STG_E_FILENOTFOUND

c++ - 在类的std::vector中比较类的不同属性

c - 我的代码的输出如何是842?

c++ - C++ 标准中的哪一段验证了以下示例中使用的表达式 `sizeof(S::m + 42)`?

具有抽象基类的 C++ 虚拟继承

c++ - 如何打印std::vector <>::size_type?

c++ - 使用分配器覆盖的数组支持 vector - 一个坏主意?