zoukankan      html  css  js  c++  java
  • scanf和cin的差异

    scanf和cin的差异

    引例:http://www.cnblogs.com/shenben/p/5516996.html

    大家都知道,在C++中有两种输入、输出方式—scanf和cin,但是,它们之间存在的差异,你们知道么?下面请看测评吧!
     
    测试题目:
    输入n个数,输出n个数。
     
    测试环境:
    ubuntu12.04 i3CPU 4G内存 7200转硬盘
     
    测试结果:
    测试结果使用linux的time测试时间,结果如下:
     
    10000组数据时:
    real代表程序执行总时间,user代表用户输入数据的时间,sys代表系统时间
    从上面的测试结果中,貌似没有发现scanf的厉害之处甚至好像还慢些(数据存在波动性),那我们接着往下看:
     
    100000组数据时:
    这时scanf已经开始崭露头角了,不过差异还不是很大,咱们接着往下看!
     
    1000000组数据时:
     
    这时候大家可以发现,cin所用的时间是scanf的两倍还多!!
    后面就不继续往下测的,对这个感兴趣或者想自己验证的童鞋可以继续。。。。不过据说scanf的输入速度是cin的3倍多!!
     
    测试总结:
    从以上测试结果,大家可以发现scanf和cin的巨大差异了吧!那么,这个东西最主要在哪应用呢?不用说都能想到,当然是ACM平台啦!那些算法没问题时间超限的童鞋,你们说不定就是因为用了cin导致的呢!
     
    再大的数据范围就要
    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define ll long long//自定数据范围 
    inline ll read(){
        register ll f=1,x=0;
        register char ch=getchar();
        while(ch>'9'||ch<'0'){if(ch=='-') f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    int main()
    {
        ll n=read();
        printf("%lld
    ",n);
        return 0;
    }

    更快的我还没学会。。。

  • 相关阅读:
    [BZOJ]1040: [ZJOI2008]骑士
    [BZOJ]1177: [Apio2009]Oil
    【luogu3384】【模板】树链剖分
    【NOIP2012TG】solution
    【NOIP2014TG】solution
    【NOIP2016TG】solution
    【NOIP2015TG】solution
    【NOIP2016】【LCA】【树上差分】【史诗级难度】天天爱跑步
    【网络流】【BZOJ1221】【HNOI2001】软件开发
    【网络流】【BZOJ1061】【NOI2008】志愿者招募
  • 原文地址:https://www.cnblogs.com/shenben/p/5517029.html
Copyright © 2011-2022 走看看