C++快速读入

使用C++的标准cin进行读入速度比较慢,尤其是在大数据的情况下,所以我们需要使用一种方法,按照字符读入,最后再“组装”成整数。由于字符读入比数字要快,所以这样做可以提高读入速度。

方法:逐位读入,把原来的数乘上10再加上这个数即可。乘上10的目的是空出个位放入待读入的数。
例如,输入123
先读入1,x=1
再读入2,x=x*10+2=10+2=12
再读入3,x=x*10+3=120+3=123
对于负数的处理,只需要判断读入的第一个数是否为负数。
 
void fast_read(int &x){
  x=0;
  char c;
  int fs;
  c=getchar();
  while(c==' ')c=getchar();
  if(c=='-')fs=1;
  else fs=0,x=x*10+c-'0';
  while(c>='0'&&c<='9'){
    c=getchar();
    if(c>='0'&&c<='9')x=x*10+c-'0';
  }
  if(fs)x*=-1;
  return;
}

 

posted @ 2021-07-06 16:24  计算机知识杂谈  阅读(383)  评论(1编辑  收藏  举报