我一直在做一个涉及大型高度图(3000x3000 ~60MB)的项目。我需要做的是将数据分割成几个200x200数组(其中15x15个),然后分别保存它们(但这次以尽可能快的格式再次加载)。我尝试过使用流(我不太擅长c++,所以不要排除流的想法),但是它慢得令人痛苦。
可能有帮助的东西(基于我在寻找答案时所看到的):高度图以文本文件(.asc)的形式提供,其中的数字写为"125.123",但没有"。无论数字是什么("0.123"one_answers"100.123"),每个条目都有三个小数。据我所知,没有负数,高度图的大小是事先知道的(通常是3000x3000)。
我的问题是:
- 最好的方法是什么?(最好没有boost之类的,但如果它有很大帮助,为什么不呢) 什么格式(对于200x200数组)将允许最快的加载时间?
任何帮助,想法,代码或链接/文献?
第二部分
如果您将文件读取回相同类型的系统(endianness),则使用二进制位元格式。我存储200 * 200数组的直接二进制转储。我还会乘以1000并将其存储为整数,因为它们通常会稍微快一些(您没有提到值的范围,也没有提到所需的精度,单位是英尺、英里还是纳米?)