一个文本文件到数组的快速转换

fast conversion of a text file to arrays C++

本文关键字:数组 转换 文件 一个 文本      更新时间:2023-10-16

我一直在做一个涉及大型高度图(3000x3000 ~60MB)的项目。我需要做的是将数据分割成几个200x200数组(其中15x15个),然后分别保存它们(但这次以尽可能快的格式再次加载)。我尝试过使用流(我不太擅长c++,所以不要排除流的想法),但是它慢得令人痛苦。

可能有帮助的东西(基于我在寻找答案时所看到的):高度图以文本文件(.asc)的形式提供,其中的数字写为"125.123",但没有"。无论数字是什么("0.123"answers"100.123"),每个条目都有三个小数。据我所知,没有负数,高度图的大小是事先知道的(通常是3000x3000)。

我的问题是:

  1. 最好的方法是什么?(最好没有boost之类的,但如果它有很大帮助,为什么不呢)
  2. 什么格式(对于200x200数组)将允许最快的加载时间?

任何帮助,想法,代码或链接/文献?

第二部分

如果您将文件读取回相同类型的系统(endianness),则使用二进制位元格式。我存储200 * 200数组的直接二进制转储。我还会乘以1000并将其存储为整数,因为它们通常会稍微快一些(您没有提到值的范围,也没有提到所需的精度,单位是英尺、英里还是纳米?)