zoukankan      html  css  js  c++  java
  • 快读

    快速读入/快速输出------NOI赛场上必备神器

    1.为啥要使用快读/快输

    在c++的iostream库中提供了cin和cout的标准流输入输出,方便确实是方便,就是有点小卡小卡的,啷个回事嘞,原来cin,cout都是先把数据存入输入输出流中,等读取数据结束再一起输出,可是我们完全可以直接输入输出,就没必要再存入io流中了。通常情况下,我们会选择使用cstdio里的printf和scanf来进行扫描,这种方式便于控制格式,但对于较多,较大的数据来说,仍然不够优秀,于是,考虑到对于字符的读取最快,快读与快输就诞生了(手动鼓掌

     

     

    )

    2.没啥好说的,直接上代码

    
    
    int Read()
    {
    	int num=0,k=1;   //k是正负数标记 
    	char c=getchar();
    	while(c!='-'&&(c<'0'||c>'9')) c=getchar();//注意判断'-' 
    	if(c=='-')
    	{
    		k=-1;
    		c=getchar();
    	}
    	while(c>='0'&&c<='9')
    	{
    		num=(num<<3)+(num<<1)+(c^48);//num<<3相当于num*8,num<<1相当于num*2,
    		c=getchar();                //c^48利用位运算优化,相当于c-'0' ,但是一定要加括号
    	return num*k;
     } 
     
     void print(int x)
     {
     	if(x>9) print(x/10);  //把这个数一位一位的输出 
     	putchar(x%10+'0');
     }
    
    
    

      

    
    
  • 相关阅读:
    【转】ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
    Eureka
    application.yml-mysql8
    sprigcloud
    springboot
    maven
    排序算法之基数排序
    排序算法之桶排序
    排序算法之计数排序
    排序算法之堆排序
  • 原文地址:https://www.cnblogs.com/Roysblog/p/13503247.html
Copyright © 2011-2022 走看看