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

    更快的我还没学会。。。

  • 相关阅读:
    canvas 动画库 CreateJs 之 EaselJS(下篇)
    canvas 动画库 CreateJs 之 EaselJS(上篇)
    kafka消息的可靠性
    Gym 100851A Adjustment Office (思维)
    UVaLive 6854 City (暴力)
    UVaLive 6853 Concert Tour (DP)
    UVaLive 6847 Zeroes (找规律,水题)
    UVa 1645 Count (递推,数论)
    CCF 201509-3 模板生成系统 (STL+模拟)
    CCF 201509-2 日期计算 (水题)
  • 原文地址:https://www.cnblogs.com/shenben/p/5517029.html
Copyright © 2011-2022 走看看