读取大型CSV文件的有效方法?

时间:2013-08-31 23:36:56

标签: c++

我目前有5个CSV文件,每个文件大约有45,000条记录。什么是最好的方法来解决这个问题?我以前做过I / O,但从未达到过这种规模。解析为矢量字符串?

2 个答案:

答案 0 :(得分:1)

是的,将它们读成vector是合理的。

存储的选择确实取决于您计划做什么以及数据是什么。如果您知道数据的格式是什么,则可能需要创建struct,并将数据读取为更有条理的形式。例如。如果文件是这样的:

name, score, err

Mats, 89, 2.1%
Steve, 79, 8%

那么你可以有这样的结构:

struct Row
{
   string name;
   int    score;
   float  err;
}

正如评论所说,45K线并不是很多,除非你在手表的计算能力上运行它,否则它不会引起任何重大问题。

答案 1 :(得分:1)

继续做你正在做的事:把所有行都读成Vector stringVector Vectorstring个,或Vector个对象。我们正在讨论200到500 MB的RAM,而现在大多数计算机都有比现有的更多的计算机。从处理时间的角度来看,在普通计算机中这将是5到10分钟(当然,取决于处理量)。

如果您遇到任何问题,请提出更多信息的新问题。