C ++中向量的结构填充

时间:2018-10-15 02:30:22

标签: c++ vector struct

与struct一样,C ++中是否有矢量的结构填充?

换句话说,如果我要在向量中插入更多或更少的值,代码A是否会占用与代码B相同的内存量?

enter image description here

1 个答案:

答案 0 :(得分:0)

否:一个T数组每个元素占用sizeof(T)个字节(如果该数组是动态分配的,则需要一个恒定的开销),并且std::vector<T>的行为类似于T[]就这一点而言(尽管由于知道其大小和容量而导致开销更高)。因此,任何填充都是struct的填充-包括总是包含在sizeof中的最后一个成员之后的 tail 填充。