C++ cin速度优化详解
如下所示:
std::ios::sync_with_stdio(false);
很多C++的初学者可能会被这个问题困扰,经常出现程序无故超时,最终发现问题处在cin和cout上,(甚至有些老oier也会被这个问题困扰,每次只能打scanf和printf,然后一堆的占位符巨麻烦),这是因为C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。
然后就可放心的使用cin,cout了。
其实usingnamespacestd;之后就可以:
ios::sync_with_stdio(false);
使用注意
取消流同步以后,stdio中带有的scanf()和printf()输入输出的内部同步也会被取消(大概是这样的,如果有误请联系博主更正),这时候再用scanf()和printf()就可能会出玄学错误,所以用的时候也要注意。最好此时不要与scanf()混用
另外,如果使用文件输入输出的话,一定记住要把这条语句放在freopen()后面,反正也会出西西,但是具体问题博主也不太清楚。。。
补充知识:解决c++cin,cout输入输出效率低导致运行结果超时的问题
在做pat的时候,遇到超时问题,首先考虑算法问题,当算法没问题的时候,就要考虑输入输出问题,cin和cout的效率比较低,有两种解决方法。
1.把cin和cout改为scanf和printf
2.不改动cin和cout,在代码中加入代码段:
ios::sync_with_stdio(false);
这个代码段可以大大提高cin和cout的效率问题。
以上这篇C++cin速度优化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。