将文本文件快速转换为数组C ++

时间:2015-06-10 15:40:24

标签: c++ arrays string file large-data

我一直致力于一个涉及大型高度图(3000x3000~60MB)的项目。 。我需要做的是将数据分成几个200x200阵列(15x15阵列),然后单独保存(但这次采用尽可能快的格式再次加载)。我尝试过使用流(我不太擅长使用C ++,所以不要用流来排除想法)但是它的速度很慢。

可能有用的东西(根据我在搜索答案时看到的内容): 高度图以文本文件(.asc)的形式提供,其编号如下所示" 125.123"但没有""。每个条目都有三位小数,无论数字是多少(" 0.123"" 100.123")。据我所知,没有负数,高度图的大小是预先知道(通常是3000x3000)。

所以我的问题基本上是:

  1. 最好的办法是什么? (最好没有提升或者这样但是如果它有很多帮助那么为什么不呢)
  2. 什么格式(对于200x200阵列)允许最快的加载时间?
  3. 任何帮助,想法,代码或链接/文学?

1 个答案:

答案 0 :(得分:1)

第2部分

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