gpt4 book ai didi

c++ - 你能预测 vector 在增长时可能在内存中移动到哪里吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:53 24 4
gpt4 key购买 nike

我正在学习 C++ 并有一个概念性问题。假设我有一个 vector 。我知道我的 vector 存储在连续的内存中,但假设我的 vector 不断增长并耗尽空间以保持内存连续。我如何预测 vector 在内存中的位置?我排除了使用函数告诉 vector 它应该在内存中的位置的选项。

最佳答案

如果它“用完空间来保持内存的连续性”,那么它将不会增长。尝试添加超过当前分配大小的项目(通常)会导致抛出异常(尽管从技术上讲,由分配器对象决定要做什么——它负责内存分配,并在不可能时做出响应。

但是请注意,这可能是由于地址空间用完(尤其是在 32 位机器上)而不是实际内存用完造成的。典型的虚拟内存管理器可以重新分配物理页面(例如 4 KB 或 8 KB block )并在必要时将数据写入页面文件以释放物理内存——但是当/如果没有足够的连续地址空间时,就没有太多这是可以做到的。

关于c++ - 你能预测 vector 在增长时可能在内存中移动到哪里吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com