读取大型CSV文件的有效方法
Effective method for reading large CSV files?
我目前有5个CSV文件,每个文件大约有45000条记录。做这件事最好的方法是什么?我以前做过I/O,但从来没有这么大规模过。解析成矢量字符串?
是的,将它们读入vector
是合理的。
存储的选择在一定程度上取决于你计划做什么,以及数据是什么。如果你知道数据的格式是什么,你可能想创建一个struct
,并将数据读取为更有组织的形式。例如,如果文件是这样的:
name, score, err
Mats, 89, 2.1%
Steve, 79, 8%
那么你可以有这样的结构:
struct Row
{
string name;
int score;
float err;
}
正如评论所说,45K线路并不多,除非你在具有手表计算能力的设备上运行,否则它不会引起任何重大问题。
继续做您正在做的事情:将所有行读取到string
s的Vector
、string
s的Vector
的Vector
或对象的Vector
中。我们谈论的是200到500 MB的RAM,而现在大多数计算机的可用内存远不止这些。从处理时间的角度来看,在一台普通计算机中,这将是5到10分钟(当然,这取决于处理量)。
如果你遇到任何问题,问一个新问题并提供更多信息。
相关文章:
- 在C++中初始化向量映射的最有效方法
- 将此布尔值传递给此函数的最有效方法是什么?
- 比较C++变量的最有效方法
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 存储变量的更有效方法是什么?
- 确保套装新鲜度的有效方法
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 映射唯一值和重复值的有效方法.可以访问键或值的位置
- 在C++事务之间存储大量字符数据的有效方法
- 在unordered_multimap中精确迭代一次每个键的有效方法
- 一种将 Dart 中的字节数据转换为 C++ 中的无符号字符*的有效方法?
- 检查两个向量是否并行的最有效方法
- 从浮点数中删除小数部分但保留类型的有效方法
- 传递非泛型函数的最有效方法是什么?
- 按升序打印矢量的所有元素直到它为空而没有重复项的最有效方法是什么?
- 创建字符串数组的有效方法
- 返回一个引用C++中另一个类对象的对象的有效方法
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 从std::map值中获取密钥的有效方法