ios::sync_with_stdio(false);
cin.tie(0);
C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。然后就可放心的使用cin,cout了。(不过实际上使用了using namespace std;之后就可以直接打ios::sync_with_stdio(false);了)
注意:取消流同步以后,stdio中带有的scanf()和printf()输入输出的内部同步也会被取消(大概是这样的),这时候再用scanf()和printf()就可能会出玄学错误,所以用的时候也要注意。
另外,如果使用文件输入输出的话,一定记住要把这条语句放在freopen()后面,反正也会出西西,但是具体问题博主也不太清楚。。。 【以上引用自该博客:关于std::ios::sync_with_stdio(false)】
在默认的情况下cin绑定的是cout,每次执行 << 操作符的时候都要调用flush,这样会增加IO负担。可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,进一步加快执行效率。
例子:
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(false);//关闭同步使cin,cout变快
cin.tie(0);//进一步加快执行效率
cin>>n>>m;
cout<<n<<m;
}