我是 C++ 的新手,所以我对静态数组的工作原理有些困惑。我知道在 C# 中,数组在首次访问之前不会放入内存中,如果您希望它可以立即访问,这可能会出现问题。但是,我正在努力将 Perlin 类转换为 C++,我希望有多个静态数组,其中只有一个可以在运行时使用,或者可以使用任意数量的数组。实际上,这并不是什么大的内存问题,因为它们都不超过 50kb,但是,我想知道是否有可能确保数组不会加载到内存中,除非我要求它。有没有办法确保在源代码中定义的静态数组不会被加载到内存中,除非被要求?这是一件非常挑剔的事情(尤其是 x64),但我更愿意尽可能地对其进行优化。我讨厌用不会被使用的东西占用内存的想法。
或者也许静态数组甚至都不是可行的方法 - 只是动态类对象包装数组?
我想真正的问题是:在 c++ 中实现可能不会全部使用的表查找的最有效解决方案是什么?
最佳答案
静态数组将在您的内存空间中,无法省略或释放它们,但这与“在内存中”不同。将其留给 Windows 虚拟内存管理器。当您第一次访问阵列时,Windows 会将它从磁盘带到 RAM 中。
关于c++ - 如何在第一次使用之前将静态数组保留在内存之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25072170/