【发布时间】:2010-08-16 21:02:52
【问题描述】:
我正在编写一个小程序来读取具有可变行数的 csv,并且对最佳实践有疑问:
为每一行的数据创建存储以创建一个包含 csv 数据结构的数组(每行一个 csv)的最佳方法是什么?
分配给数组的大小可以设置为一个很大的数字(例如,比 csv 中合理的行数更多)? 我在网上的很多例子中都看到了这一点。
或者...是否有一种聪明的方法来判断需要多少空间,例如预先计算行数或通过使用链表而不是数组来动态添加空间静态存储分配。有什么最佳实践吗?我不认为选择一个随机数看起来很巧妙......
任何想法将不胜感激。
【问题讨论】:
-
如果您需要有关使用数据结构的建议,请提供少量有关您计划如何处理 csv 数据的信息。但是是的,你是对的,选择随机数不是一个好主意。
-
基本上我知道我已经创建了一个适合 CSV 行本身的数据结构(一旦解析),但我问的是正确或常用的数据结构保存这些行,因为它们正在被读取,这些行的长度会随着文件长度的增加或减少而变化。
-
我希望从你那里得到一些东西,让我可以建议使用 sed 和 awk 进行文本处理,但我不能这样做,因为 1)你可能需要跨平台2)我没有看到你需要它的任何证据。 :( 所以你接受的答案是好的。尽量避免一次读取整个文件。如果你读取一个巨大的文件并且需要为所有文件分配空间空间,你可能会用完堆空间。
标签: c csv data-structures