我有一个几千兆字节大的文件,有数百万行。每行都有这样分隔的数据:
string TAB int TAB int TAB int NEWLINE
由于 CPU 而不是我的 SSD 的写入速度,我之前尝试逐行读取此内容时遇到了瓶颈。
如何逐行快速解析海量文件?
注意:文件太大,无法一次全部解析成 vector 。
在我的原始代码中,我将数据解析为这样的结构 vector
struct datastruct {
std::string name;
int year;
int occurences;
int volcount;
};
std::vector<datastruct> data;
最佳答案
使用你的datastruct
,你可以做
std::ifstream file;
datastruct data;
while (file >> data.name >> data.year >> data.occurences >> data.volcount)
{
// do what you want with data, its contents will be replaced during next iteration
}
这么慢吗?
关于c++ - 在 C++ 中快速解析制表符分隔的字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184853/