【发布时间】:2015-05-09 03:39:00
【问题描述】:
什么是读取每行整数文件而不打开它的最有效方法? 我有一个每行只有整数的文件,即:num.txt
100
231
312
...
在我的程序中,我使用while循环来读取它;
int input = 0;
while(cin >> input)
{
// Assignment
}
我使用time a.out <num.txt 在 Linux 中阅读
事实证明,读取 1 亿 个数字大约需要 15 秒(用户时间)。所以我想知道有没有更好的方法来减少用户时间?
提前谢谢你!
【问题讨论】:
-
如果您关心性能,请不要使用 iostream。
-
只是为了避免在技术上误导自己,当您使用重定向“open(2) 和
read(2)。 -
@tux3:我们已经多次证明 iostream 与其他读取文件的方法几乎相同。唯一有很大不同的是您是否可以将文件直接映射到内存中。 (如果您通过 stdin 输入它,最喜欢的方法将不起作用)-您可能必须打开
sync_with_stdio才能获得合理的性能。 -
@qdii shauryachats 的回答非常棒,它简单且相当快。
标签: c++