hello

Menu

关于c++输入方式的速度比较

这个cin和scanf有什么不同啊???

因为很多人问这个问题,我索性写个博客说明一下我学竞赛时学过的几种输入操作方式的比较

首先我们生成100w个数字


然后尝试来个数组用cin读入试试时间要多少

大致耗时如下

我的电脑实测稳定在600ms左右


然后我们尝试一下用scanf读入试试

同机运行时长如下

多次运行结果大概稳定在220ms左右


那是不是说明用scanf一定比cin好?

未必,因为曾经在电脑室听高哥说过cin一个神奇的开关

于是乎,我们尝试关掉这个开关来使用cin

运行时间如下

多次运行耗时稳定在135ms左右,所以在这种情况底下,cin的输入时间看起来更优


能不能再快点??

其实我也这么问过,后来我在某个大佬的博客上看代码学习树剖的时候,偶然间学习到了一个快速读入的操作

经过skida大佬的一番解说,算是有了一点初步的认识,后来也尝试写了几遍

再后来,模拟赛基本都用这个方式写

运行时间如下

多次运行结果稳定在75ms左右


结论:耗时和代码长度是呈反比的。

但是在快节奏的生活里,我们应该学会慢下来,喝杯茶静静地等待程序的运行,不要一味的追求更快而失去了探索过程的乐趣。

— 于 共写了634个字
— 文内使用到的标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注