Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c+中保存和加载大型数组+; 我需要把一个大的3D数组保存到一个文件中,并在C++中再次加载。 它是256*256*256=16777216个整数_C++_Arrays_File_Optimization - Fatal编程技术网

在c+中保存和加载大型数组+; 我需要把一个大的3D数组保存到一个文件中,并在C++中再次加载。 它是256*256*256=16777216个整数

在c+中保存和加载大型数组+; 我需要把一个大的3D数组保存到一个文件中,并在C++中再次加载。 它是256*256*256=16777216个整数,c++,arrays,file,optimization,C++,Arrays,File,Optimization,保存此文件并重新加载的最佳方法是什么?我最感兴趣的是快速加载时间。如果数组是在连续内存中分配的(即:您不单独分配每个维度),您可以将整个内存块转储到文件中。它所花费的时间和它所花费的时间一样多,但这将是最小的开销(即:对整个数据块调用二进制写入) 如果在一个系统上保存而在另一个系统上加载,则可能会遇到数据表示方面的问题,在这种情况下,您可能希望序列化数组并将每个值保存在受控对象中。您可能会感兴趣,特别是如果您(1)希望能够在磁盘上轻松存储此类数据,(2)想要一种连贯的方式来保存更复杂的对象,并且

保存此文件并重新加载的最佳方法是什么?我最感兴趣的是快速加载时间。

如果数组是在连续内存中分配的(即:您不单独分配每个维度),您可以将整个内存块转储到文件中。它所花费的时间和它所花费的时间一样多,但这将是最小的开销(即:对整个数据块调用二进制写入)


如果在一个系统上保存而在另一个系统上加载,则可能会遇到数据表示方面的问题,在这种情况下,您可能希望序列化数组并将每个值保存在受控对象中。

您可能会感兴趣,特别是如果您(1)希望能够在磁盘上轻松存储此类数据,(2)想要一种连贯的方式来保存更复杂的对象,并且(3)想要一种可移植的解决方案。

您应该能够使用多个线程从文件加载(因为任何数量的读卡器都可以)。必须小心地将它们存储在同一阵列中(以免相互干扰)。我会尝试以使多线程成为可能的方式保存数据(即换行格式)。@twain249我认为瓶颈是磁盘,通过在文件中来回移动来增加寻道时间不会使它变得更好。。。只是说…也许会看到问题谢谢!我将努力实现这一点。有什么能帮到我的网络参考资料吗?