如何在第一次使用之前保持静态数组的内存不足

Thi*_*Use 3 c++ arrays static pointers memory-management

我对C++很新,所以我对静态数组的工作方式感到有些困惑.我知道在C#中,数组在第一次访问之前不会被放入内存中,如果您希望它立即可访问,则可能会出现问题.但是,我正在努力将Perlin类转换为C++,并且我希望有多个静态数组,其中只有一个可以在运行时使用或者任意数量.实际上,它并不是那么大的内存问题,因为它们都不会超过50kb,但是,我宁愿知道是否有可能确保数组没有加载到内存中,除非我要求它.有没有办法确保源代码中定义的静态数组没有加载到内存中,除非要求?这是一个非常挑剔的事情(尤其是x64),但我更愿意尽可能优化它.我讨厌用不会被使用的东西占用内存的想法.

或者也许静态数组甚至没有办法 - 只是动态类对象包装数组?

我想真正的问题是:在c ++中实现表查找的最有效的解决方案是什么,可能并非全部使用?

Sco*_*MVP 5

静态数组将在你的内存空间中,无法省略或释放它们,但这与"在内存中"不同.将其留给Windows虚拟内存管理器.当您第一次访问阵列时,Windows会将其从磁盘带入RAM.