gpt4 book ai didi

c++ - 当我的 vector< vector< vector>> 大于 RAM 时,为什么我的程序会产生正确的输出?

转载 作者:太空狗 更新时间:2023-10-29 20:27:16 24 4
gpt4 key购买 nike

我实现了一个系统,该系统将一些数据作为输入,结果生成一个非常大的 vector< vector< vector<int> > >然后我将其输出到一个文件。

计算结果后,我决定计算这个最终 3d vector 中的数字总数,它是:1386502951

这意味着存储此 vector 所需的内存总量至少为 1386502951*4 bytes = 5.16512599 GB

但是我的 RAM 内存只有 4 GB。

谁能给我解释一下这是怎么可能的?

提前致谢!

最佳答案

您的应用程序能够分配比计算机上实际安装的内存更多的内存,因为它支持虚拟内存。分配、分页和释放虚拟内存由操作系统处理,以允许您的应用程序运行而不必担心耗尽物理内存。

请记住,当您的应用程序从其堆中释放内存时,可能不会立即释放分配的内存。这往往会让人们认为他们的应用程序有时会使用更多本应使用的内存。

有很多网站讨论虚拟和物理主题,以及运营商提供的任何 API,让您可以对其进行一些控制。快速 Google Dance 应该会为您提供大量关于该主题的链接。

关于c++ - 当我的 vector< vector< vector<int>>> 大于 RAM 时,为什么我的程序会产生正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782456/

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