转载请注明出处:http://blog.csdn.net/a1dark

分析:我们都知道运行时间对我们来说很重要、有时候不惜用大量的内存去换取一点时间、有些人可能都比较关注这个问题、首先时间上:cin>scanf>getchar

所以我们尽量用getchar()和gets()来优化时间、特别是在数据输入量很大的时候、加速效果十分明显、

但是每次都花时间来写getchar确实很烦、于是模板便应运而生了、

一般情况下、使用模板可以达到常数倍时间的优化

注:这个对ACM的帮助不大、除非遇到卡常数时间的出题人= =|||(不过想要题目的排名靠前还是有帮助的)

//适用于正整数
template <class T>
inline void scan_d(T &ret) {
char c; ret=0;
while((c=getchar())<'0'||c>'9');
while(c>='0'&&c<='9') ret=ret*10+(c-'0'),c=getchar();
}
//适用于正负整数
template <class T>
inline bool scan_d(T &ret) {
char c; int sgn;
if(c=getchar(),c==EOF) return 0; //EOF
while(c!='-'&&(c<'0'||c>'9')) c=getchar();
sgn=(c=='-')?-1:1;
ret=(c=='-')?0:(c-'0');
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
ret*=sgn;
return 1;
}
//适用于正负数,(int,long long,float,double)
template <class T>
bool scan_d(T &ret){
char c; int sgn; T bit=0.1;
if(c=getchar(),c==EOF) return 0;
while(c!='-'&&c!='.'&&(c<'0'||c>'9')) c=getchar();
sgn=(c=='-')?-1:1;
ret=(c=='-')?0:(c-'0');
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
if(c==' '||c=='\n'){ ret*=sgn; return 1; }
while(c=getchar(),c>='0'&&c<='9') ret+=(c-'0')*bit,bit/=10;
ret*=sgn;
return 1;
}
inline void out(int x) {
if(x>9) out(x/10);
putchar(x%10+'0');
}

最新文章

  1. 我理解的MVC
  2. Node.js 教程 04 - 模块系统
  3. aBowman &gt;&gt;可以运用到自己博客上的小插件
  4. DHCP工作过程
  5. [C] static和extern的作用
  6. hdu-5587 Array(回溯)
  7. Sql Server Row_Number() 学习
  8. HTML5之Canvas画布
  9. uva 10382 Watering Grass_贪心
  10. ubuntu/linux 下 git 通过代理下载数据 (最简单的方式)
  11. Linux 分区的概念
  12. Javascript教程:js异步模式编程的4种解决方法
  13. ajax一些东西
  14. imp 导入报错
  15. ASCII码与unicode字符集
  16. 《linux就该这么学》第二节课,安装红帽7,基础命令至2.3小节的笔记
  17. maven配置之:&lt;distributionManagement&gt;snapshot快照库和release发布库
  18. &lt;Spark&gt;&lt;Programming&gt;&lt;Loading and Saving Your Data&gt;
  19. 『Pandas』数据读取&amp;DataFrame切片
  20. 【httpclient-4.3.1.jar】httpclient发送get、post请求以及携带数据上传文件

热门文章

  1. 安装pip之后,执行pip,提示:unknown or unsupported command install
  2. JavaScript高级之函数的四种调用形式
  3. java 堆与栈的区别
  4. Bootstrap 分页插件 ajax获取数据显示
  5. js 正则 非负整数
  6. bzoj1487
  7. bzoj2186
  8. bzoj1179
  9. response常见应用、response细节、输出随机图片、定时刷新网页
  10. HDOJ --- 2084数塔