txt文件更有效地解析c ++到向量

时间:2017-04-23 10:43:39

标签: c++ parsing vector ifstream getline

我的程序使用ifstream()和getline()将文本文件解析为两个向量深的对象。即矢量内矢量。文本文件加载完成后,内部向量包含超过250000个字符串对象。

这是非常缓慢的。是否存在比使用ifstream()和getline()更有效的STD替代方案?

由于

更新:

{{1}}

1 个答案:

答案 0 :(得分:0)

您应该减少内存分配。拥有矢量矢量通常不是一个好主意,因为每个内部矢量都有自己的newdelete

您应该reserve()开始时向量中需要的大致元素数量。

如果您实际上不需要提取fgets()来完成工作,则应使用std::string。例如,如果可以从char数组解析对象,那么就这样做。确保每次都读入相同的字符串缓冲区,而不是创建新的缓冲区。

最重要的是,使用分析器。