在 C++ 中,一个 std::vector<T>
基本上是一个指针(T*
)、一个大小对象(int
)和一个容量对象(int
)。
施工中,std::vector
创建一个新指针 T*
随着 vector 的增长,std::vector
负责随着 vector 的增长分配所需的内存。如果 vector 增长以至于没有更多的空间来添加元素T
, 然后 std::vector
会自动将指针移动到另一个位置并将数据复制过来。
是否可以告诉 vector 在构造时使用什么指针并指示固定大小并在程序试图使 vector 大于构造时指示的大小时中止?
最佳答案
不,std::vector
没有提供直接的方法。
std::vector
通过分配器对象分配空间。如果您愿意,可以很容易地编写一个最小的分配器,它有一个额外的调用来禁用分配,如果在禁用分配后尝试分配,则调用中止。
关于c++ - 确保 `std::vector` 不会移动其指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840772/