快读

快速读入/快速输出------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');
 }

  


posted @ 2020-08-14 17:04  Roy0_0  阅读(121)  评论(0编辑  收藏  举报
Live2D