我需要将一个大型 3D 整数数组保存到一个文件中,然后在 C++ 中再次加载它。它是 256*256*256 = 16777216 个整数。
保存并再次加载它的最佳方法是什么?我最感兴趣的是快速加载时间。
我需要将一个大型 3D 整数数组保存到一个文件中,然后在 C++ 中再次加载它。它是 256*256*256 = 16777216 个整数。
保存并再次加载它的最佳方法是什么?我最感兴趣的是快速加载时间。
如果数组是在连续内存中分配的(即:您不单独分配每个维度) - 您可以将整个内存块转储到文件中。它需要尽可能多的东西,但这将是最小的开销(即:对整个数据块调用二进制写入)。
如果您在一个系统上保存并在另一个系统上加载,您可能会遇到数据表示问题,在这种情况下,您可能希望序列化数组并将每个值保存在受控事项中。
您可能对Boost.Serialization感兴趣,特别是如果您 (1) 希望能够轻松地将此类数据存储在磁盘上,(2) 想要一种连贯的方式来保存更复杂的对象,以及 (3) 想要一个可移植的解决方案。