码迷,mamicode.com
首页 > 其他好文 > 详细

什么时候,可以关闭cin和stdin的同步

时间:2018-08-19 01:04:30      阅读:1139      评论:0      收藏:0      [点我收藏+]

标签:pac   scanf   cout   text   als   syn   关闭   col   div   

一些情况下,我们为了保证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的同步

标签:pac   scanf   cout   text   als   syn   关闭   col   div   

原文地址:https://www.cnblogs.com/zhangzehua/p/9499313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!