zoukankan      html  css  js  c++  java
  • 快速输入输出

    由于c++自带的scanf有时候会被卡,自己写一下输入输出会让程序快很多,下面我用的是fread加速读入.

    fread的速度是scanf,cin关同步指针的几十倍,是普通read的2倍.让程序跑得更快.

    听说还有一种更快的方法叫mmap,可本蒟蒻不会,如果感兴趣可以自行百度.

    为了看的时候方便,我把这些封装在一个namespace里面,要用的时候调用就可以了.

    下面是代码:

    1 namespace zdy{
    2 #define ll int
    3 #define pob (fwrite(fob::b,sizeof(char),fob::f-fob::b,stdout),fob::f=fob::b,0)
    4 #define pc(x) (*(fob::f++)=(x),(fob::f==fob::g)?pob:0)
    5 #define gc ((*fib::f)?(*(fib ::f++)):(fgets(fib::b,sizeof(fib::b),stdin)?(fib::f=fib::b,*(fib::f++)):-1))
    6 namespace fib{char b[300000]= {},*f=b;}inline void in(ll &x){x=0;char c;bool f=0;while((c=gc)>'9'||c<'0')if(c=='-')f=!f;x=c-48;while((c=gc)<='9'&&c>='0')x=x*10+c-48;if(f)x=-x;}namespace fob{char b[300000]= {},*f=b,*g=b+300000-2;}struct foce{~foce(){pob;fflush(stdout);}} _foce;namespace ib{char b[100];}inline void out(ll x){if(x==0){pc(48);return;}if(x<0){pc('-');x=-x;}char *s=ib::b;while(x) *(++s)=x%10,x/=10;while(s!=ib::b) pc((*(s--))+48);}inline void outn(ll x){out(x);pc('
    ');}
    7 }using namespace zdy;

    只要把这段代码粘贴到代码的主程序的上面,就可以使用in(x)输入x,out(x)输出x,outn(x)输出x并换行

     ll指的是要读入的整数的类型,可以是short,int,long long,_int64/_int128等类型

  • 相关阅读:
    ISTQB测试人员认证 初级(基础级)大纲
    5.2 测试计划和估算
    4. 测试设计技术
    V模型与测试级别
    1.3 Seven Testing Principles
    什么是DNS?
    总结SQL查询慢的50个原因
    CPU分几核几核的是什么意思?
    监控查询慢sql
    关于并发用户数的思考-通过PV量换算并发
  • 原文地址:https://www.cnblogs.com/mimiorz/p/9160670.html
Copyright © 2011-2022 走看看