发布于  更新于 

实地测试各种读取方法的速度

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, 真是奇怪