关于这个主题已经有一个主题,但我仍然有疑问。计算一个 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/