【发布时间】:2017-02-18 13:49:41
【问题描述】:
在 C++ 文件中写入和读取混合数据类型(即无符号整数、双精度、uint64_t、字符串)的有效方法。
我需要在磁盘上写入和读取包含混合数据类型的数据。我使用以下方法写入数据。然而,它变得非常缓慢。
fstream myFile;
myFile.open("myFile", ios::binary, ios::out);
double x; //with appropriate initialization
myFile<<x;
int y;
myFile<<y;
uint64_t z;
myFile<<z;
string myString;
myFile<<myString;
但是,对于 20 GB 的大数据,这种方法效率非常低。有人可以建议我如何在 C++ 中快速读写混合数据类型
【问题讨论】:
-
如果您打算解析 20 GB 的数据,您可能应该从基础开始研究如何有效地完成该任务。你有同事可以帮助你吗?
-
@LightnessRacesinOrbit 不幸的是没有
-
那么,请原谅我这么说,看来您和您的团队不适合这项任务。你是怎么背上它的?
-
我以前没有尝试过这样的事情。这是否比仅写入具有相同字节数的整数数组要慢? io 是缓冲的,所以我猜数据的类型并不重要。所有类型的数据都只是字节。你如何读/写文件?您需要按索引插入/删除/访问吗?是不是像一张表,其中每一行都包含一个 int、一个 uint64_t 和一个字符串? stackoverflow.com/questions/10770675/…