我目前有5个CSV文件,每个文件大约有45,000条记录。什么是最好的方法来解决这个问题?我以前做过I / O,但从未达到过这种规模。解析为矢量字符串?
答案 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
string
个Vector
Vector
个string
个,或Vector
个对象。我们正在讨论200到500 MB的RAM,而现在大多数计算机都有比现有的更多的计算机。从处理时间的角度来看,在普通计算机中这将是5到10分钟(当然,取决于处理量)。
如果您遇到任何问题,请提出更多信息的新问题。