c++ - 为什么在一个类中可以使用多个std vector ?

标签 c++ class

this answer出发,我相信可以保证类的成员在内存中是按声明的顺序连续的。但是,从the docs中,“ vector 将连续存储位置用于其元素”。因此,如果一个 vector 可能会调整大小并溢出到已分配的内存中,那么在一个类中可能有多个 vector ,或者一个不是该类的最后一个成员的 vector 呢?

最佳答案

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

关于c++ - 为什么在一个类中可以使用多个std vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59623251/

相关文章:

java - Java 和 C++ 中重载方法的继承在哪些基本方面有所不同?

c++ - Flag 检查编译器是 gcc/mingw 还是 VC++ cl?

c++ - 代码片段不能在 C++17 下编译,命名空间问题?

c++ - std::reference_wrapper<T> 的隐式 T& 构造函数是否会使使用变得危险?

java - 我有一个抽象类和 2 个子类。如果你不能实例化抽象类,你如何使用它们

c# - FileDialog 找不到方法 ShowDialog()

c++ - 从链表 C++ 中删除特定值

c++ - C2653 : not a class or namespace without precompiled headers

python - Django 表关系及其调用方式说明

ruby - 数字1上的实例方法从何而来