[是模板哦] 快速读入
Posted tatarakogasa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[是模板哦] 快速读入相关的知识,希望对你有一定的参考价值。
原理(大概是)
getchar()比scanf()和cin都要快
利用非常快的读入函数getchar(),一位一位将数字以字符形式读入,若读入的字符不为数字则结束,首先判断要读入的数字的正负,之后每读入一个字符就将字符转化为数字并*10然后加上它
代码
这里提供两种书写函数的方式
1 #include<cstdio> 2 using namespace std; 3 4 inline int read1(){// 5 int f=1,x=0; 6 char s=getchar(); 7 while(s<‘0‘ || s>‘9‘){ 8 if(s==‘-‘) 9 f=-1; 10 s=getchar(); 11 } 12 while(s>=‘0‘ && s<=‘9‘){ 13 x=x*10+s-‘0‘; 14 s=getchar(); 15 } 16 return x*f; 17 } 18 19 void read2(int &x){ 20 int f=1; 21 x=0; 22 char s=getchar(); 23 while(s<‘0‘ || s>‘9‘){ 24 if(s==‘-‘) 25 f=-1; 26 s=getchar(); 27 } 28 while(s>=‘0‘ && s<=‘9‘){ 29 x=x*10+s-‘0‘; 30 s=getchar(); 31 } 32 x*=f; 33 } 34 35 int main(){ 36 int t1,t2; 37 t1=read1(); 38 read2(t2); 39 return 0; 40 }
我感觉还不错
友情链接:安利一只小姐姐的博客
以上是关于[是模板哦] 快速读入的主要内容,如果未能解决你的问题,请参考以下文章