将文本文件快速转换为数组 C++
fast conversion of a text file to arrays C++
我一直在从事一个涉及大型高度图 (3000x3000 ~60MB) 的项目。 .我需要做的是将数据分成几个 200x200 数组(其中 15x15),然后分别保存它们(但这次以尽可能快的格式再次加载)。我试过使用流(我不太擅长 C++,所以不要排除流的想法),但速度慢得令人痛苦。
可能有帮助的内容(基于我在搜索答案时看到的内容):
高度图以文本文件 (.asc) 的形式提供,数字像这样写成“125.123”但没有“”。无论数字是多少(“0.123”和“100.123”),每个条目都有三位小数。据我所知,没有负数并且高度图的大小是事先已知的(通常为 3000x3000)。
所以我的问题本质上是:
- 最好的方法是什么? (最好没有提升或类似但如果它有很大帮助那么为什么不呢)
- 哪种格式(对于 200x200 阵列)加载时间最快?
任何帮助、想法、代码或 links/litterature?
第 2 部分
如果您将文件读回相同类型的系统(字节顺序),则使用二进制 blittable 格式。即存储 200 * 200 数组的直接二进制转储。我也会乘以 1000 并存储为整数,因为它们通常稍快一些(您没有提到值的范围,也没有提到所需的精度,单位是英尺、英里、纳米吗?)
我一直在从事一个涉及大型高度图 (3000x3000 ~60MB) 的项目。 .我需要做的是将数据分成几个 200x200 数组(其中 15x15),然后分别保存它们(但这次以尽可能快的格式再次加载)。我试过使用流(我不太擅长 C++,所以不要排除流的想法),但速度慢得令人痛苦。
可能有帮助的内容(基于我在搜索答案时看到的内容): 高度图以文本文件 (.asc) 的形式提供,数字像这样写成“125.123”但没有“”。无论数字是多少(“0.123”和“100.123”),每个条目都有三位小数。据我所知,没有负数并且高度图的大小是事先已知的(通常为 3000x3000)。
所以我的问题本质上是:
- 最好的方法是什么? (最好没有提升或类似但如果它有很大帮助那么为什么不呢)
- 哪种格式(对于 200x200 阵列)加载时间最快?
任何帮助、想法、代码或 links/litterature?
第 2 部分
如果您将文件读回相同类型的系统(字节顺序),则使用二进制 blittable 格式。即存储 200 * 200 数组的直接二进制转储。我也会乘以 1000 并存储为整数,因为它们通常稍快一些(您没有提到值的范围,也没有提到所需的精度,单位是英尺、英里、纳米吗?)