什么时候,可以关闭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读入和输出的准备
 

猜你喜欢

转载自www.cnblogs.com/zhangzehua/p/9499313.html