c++ 读入优化、输出优化模板

  0. 在有些输入数据很多的变态题中,scanf会大大拖慢程序的时间,cin就更慢了,所以就出现了读入优化。其原理就是一个一个字符的读入,输出优化同理,主要使用getchar,putchar函数。

  1. int型读入优化(long long的只要把x改成long long型即可):

1 #include<cctype>
2 inline int read()
3 {
4     int x=0,f=0; char ch=0;
5     while(!isdigit(ch)) {f|=ch=='-';ch=getchar();}
6     while(isdigit(ch)) x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
7     return f?-x:x;
8 }

  2.double型读入优化:

1 inline double dbread()
2 {
3     double x=0,y=1.0; int f=0; char ch=0;
4     while(!isdigit(ch)) {f|=ch=='-';ch=getchar();}
5     while(isdigit(ch)) x=x*10+(ch^48),ch=getchar();
6     ch=getchar();
7     while(isdigit(ch)) x+=(y/=10)*(ch^48),ch=getchar();
8     return f?-x:x;
9 }

  3. int型输出优化(在一些输出数据量很大的题可能会用,同理long long型的改一下x的类型即可): 

1 inline void write(int x)
2 {
3      if(x<0) putchar('-'),x=-x;
4      if(x>9) write(x/10);
5      putchar(x%10+'0');
6 }

 

  在一些题中使用优化可能从TLE逆转AC,代码也比较短,平时多敲敲。

转载于:https://www.cnblogs.com/FrankChen831X/p/10661348.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值