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;
    }

    更快的我还没学会。。。

  • 相关阅读:
    信息系统项目管理师沟通的四个好习惯
    Android 线程
    替换exe程序图标DLL
    Python 邮件类
    android自适应屏幕方向和大小
    sqlserver 存储过程
    FinalData 数据恢复工具[绿色版]
    Python Python 正则 取中括号值
    在Button任意位置加图片效果
    android GPRS
  • 原文地址:https://www.cnblogs.com/shenben/p/5517029.html
Copyright © 2011-2022 走看看