今天在刷题的时候发现总是运行超时长,结果把 cin>> 输入改成了scanf后就解决了这个问题。之前知道有这个方案,但是一直没有弄清楚其中的原因,于是就去查了点资料。这里做一个小结。
scanf 和 cin 在时间效率上差别很大的原因是:
scanf("%d",&elem);元素的类型我们已经告知了,机器不用再去查找元素类型。
cin>>elem; 元素类型由机器自己查找,在需要大量输入数据的时候,时间的冗余就十分明显了
曾有人做过比较:在相同数据量的情况下cin的耗时是scanf的3.5~4倍。
但是,值得一提的是,cin的安全性比scanf优越。