什么时候,可以关闭cin和stdin的同步
Posted zhangzehua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候,可以关闭cin和stdin的同步相关的知识,希望对你有一定的参考价值。
一些情况下,我们为了保证cin的读取输出速度,会选择在代码开头添加这样一句代码
std::ios::sync_with_stdio(false);
它的功能就是关闭cin和stdin的同步。从而提高cin的速度。可以使cin比scanf更加快。
但是身为小白的我,第一次用的时候忽略了一个问题。
这句话的功能是取消cin和stdin的同步,也就是说如果你打代码里同时又cin,cout语句和scanf,prin语句,那么他们就不会同步了。
这意味着,即便你的输出是正确的,因为cin和stdin速度上不再同步的关系。你的输出可能会出现错误的顺序。这个现象不会出现在运行窗口上(所以你调试的时候只在运行窗口无法发现这个问题),但是在输出文件里你会发现,cin的输出会比stdin更快,即便在读入顺序上有先后之差,那么在OJ上毫无疑问会得到一个WA。
所以,当我们选择使用
std::ios::sync_with_stdio(false);
这个语句时
就要做好只用cin读入和输出的准备
以上是关于什么时候,可以关闭cin和stdin的同步的主要内容,如果未能解决你的问题,请参考以下文章
std::ios::sync_with_stdio(false);