登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Xorex's blog

纵然希望渺茫,也要做一条有梦想的咸鱼!

 
 
 
 
 

日志

 
 
关于我

本人倒是一直被吊着打啊……

文章分类

快速读入和快速输出  

2017-05-12 08:58:14|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今天晚上闲来无事,就将各种类型的快读和快出写了出来(不会写浮点型);
比如int是节省时间最快的,超级快!!!

inline int In_int()
{
int This=0,F=1; char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-') F=-F;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
This=(This<<1)+(This<<3)+ch-'0';
ch=getchar();
}
return This;
}

其次就是char类型,节省时间一般般。

inline char In_char()
{
int ch=getchar();
while(ch<'A'||ch>'z') ch=getchar();
return ch;
}

然后就是cstring类型的,发现并没有多大提升,一样慢的要死。

inline string In_string()
{
string s1; char ch=getchar();
while(ch<'!'||ch>'~') ch=getchar();
while(ch>='!'&&ch<='~')
{
s1+=ch;
ch=getchar();
}
return s1;
}

以后快读只写整形的了,其他性价比不是太高。
而且要注意,string在读入或者处理的时候是非常非常慢的,能用字符数组就用字符数组,提升简直不止一个数量级。

快速输出char:

inline void Put_char(char x)
{
putchar(x);
putchar('\n');
}


快速输出string

inline void Put_string(string x)
{
for(int i=0;i<x.size();i++) putchar(x[i]);
putchar('\n');
}

快速输出int

void Put_int(int x)
{
int This=10,len=1;
while(This<=x)
{
This=(This<<1)+(This<<3);
len++;
}
while(len--)
{
This/=10;
putchar(x/This+'0');
x%=This;
}
}




  评论这张
 
阅读(51)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018