Several Topics On C++ fstream

Author: YuMaNzI

2014/06/28 1. Running-time Comparison of getline and operator >>

To Be Continue.


1. Running-time Comparison of getline and operator >>

I use fstream to read a graph, which is maintained in a file. Each line of the file consisting two integers, representing a directed edge. The graph contains more than 10 million edges.

	for (int i = 0; i < edgeC; i++) {
		/* operator >>	*/
		input >> s[i] >> t[i];
		/* getline		*/
		getline(input, line);
		int space = line.find(' ');
		s[i] = stoi(line.substr(0, space));
		t[i] = stoi(line.substr(space + 1, line.length() - space - 1));		
	}

I first use >> to read the two integers in each line. It takes 11.912 sec in total to finish the loop. An alternative way is to get each line by getline function, followed by splitting the line into two substrings, and convert each substeing into an integer. The second method takes 5.383 sec in total. 

Conclusion: although the second way involves more operations than simple >> method, but the running times of the second method is only less than half running time of its competitor.  It indicates that frequent >> operations is a heavy task, and should be avoided.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值