为什么可以在一个类中使用多个 std 向量?

1 c++ class

这个答案中,我相信一个类的成员保证在内存中是连续的,按照它们被声明的顺序。但是,从文档中,“向量对其元素使用连续的存储位置”。那么,如果一个向量可能会调整大小并溢出到已经分配的内存中,那么如何在一个类中拥有多个向量,或者一个不是类的最后一个成员的向量呢?

use*_*301 6

std::vector通常实现为三个指针。一个指向存储vector内容的动态分配数组的指针,一个指向已用内存末尾的指针,一个指向已分配数组末尾的指针。无论 是如何vector分配的,vector的数据都存储在动态存储中的其他地方。