欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

竞赛之路-提高cin和cout的效率

程序员文章站 2022-06-22 17:10:41
在比赛中,我通常会使用C++中的cin、cout输入输出控制台上的数据,但是默认情况下cin、cout是和scanf、printf同步的(即可以混用cin、scanf和cout、printf),这会使cin、cout需要先把东西存入缓冲区再进行输入输出操作,导致效率低下,这时在main函数开头加入以下语句:ios::sync_with_stdio(false);cin.tie(0);整个形式如下:#include using namespace std;...

在比赛中,我通常会使用C++中的cin、cout输入输出控制台上的数据,但是默认情况下cin、cout是和scanf、printf同步的(即可以混用cin、scanf和cout、printf),这会使cin、cout需要先把东西存入缓冲区再进行输入输出操作,导致效率低下,这时在main函数开头加入以下语句:

ios::sync_with_stdio(false);
cin.tie(0);

整个形式如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);

	return 0;
}

前一句语句将“是否兼容stdio”的开关关闭,使之效率与scanf、printf相差无几
注:关闭之后就不能混用cin、cout和scanf、printf,推荐只使用cin、cout

第二句语句解除cin与cout的绑定,因为在默认的情况下cin绑定的是cout,每次执行 << 操作符的时候都要调用flush,这样会增加IO的负担。可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,进一步加快执行效率。

本文地址:https://blog.csdn.net/DGany/article/details/107518243

相关标签: 竞赛之路