实地测试各种读取方法的速度
oi 废话对一个包含10000000个 int
的文件进行读取,使用 clock()
计时(以毫秒为单位的CPU时间,括号中为程序实际运行用时)
项目 | 第一次用时 | 第二次用时 | 第三次用时 |
---|---|---|---|
造数据 | 1.447s | 1.505s | 1.452s |
cin +freopen |
8856(10.89s) | 8913(8.96s) | 8942(8.98s) |
scanf +freopen |
5692(7.41s) | 5730(5.77s) | 5721(5.77s) |
手写快读 | 2398(4.201s) | 2383(2.427s) | 2398(2.443s) |
手写快读,不判负数 | 2395(4.199s) | 2412(2.457s) | 2388(2.437s) |
手写快读,不用 isdigit |
2402(4.125s) | 2430(2.477s) | 2424(2.468s) |
ifstream |
43(2.003s) | 34(0.08771s) | 43(0.08684s) |
这不科学!!! ifstream
怎么这么快!
好吧是我把文件名写错了,不过 ifstream
还是很快,平均1820左右,比手写快读快。
但是在cw的机器上就翻了过来,ifstream 2.2s, read() 1.8s, 真是奇怪