玩竞赛的同学应该发现了C++中直接调用cout.cin的效率要比printf和scanf的效率要低. 要解决这个问题,只需要在前面加上一句 std::ios::sync_with_stdio(false); 即可. 这是因为cout.cin要先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句可以来打消iostream的输入输出缓存,可以节省时间,使效率与scanf与printf差不多. 但是cout.cin使用缓存区一定是有它的道理的,然而这我现在还不知道有啥道理.…
std::ios::sync_with_stdio(false); 在main 函数中加上这么一句话. 可以打消iostream的输入输出缓存,可以节省许多时间,使效率与scanf与printf相差无几. 因为 cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低.…
之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是想着应该不是算法的问题.然后又想到,网上提交的答案,大家都是用scanf和printf写的,而我用的cin cout,而这题的确需要大量的输入输出,于是就想着把所有cin cout改成scanf printf.结果 -.- 上面c++版,下面c版. 于是我很好奇C的输入输出方法和C++提倡的方法为什…
在c++中,我们使用cin和cout进行输入输出会比用scanf和printf更加简洁和方便,但是当程序有大量IO的时候,使用cin和cout进行输入输出会比用scanf和printf更加耗时, 在数据量较小时则无明显差别.如果没要求效率的话,用cin和cout或scanf和printf都行:但是如果有效率要求的话,就另说了,比如在刷OJ的时候经常会遇到超时的问题, 这时就要考虑程序的效率了.具体如下: 在有大量IO的情况下,如果你仍然想用cin.cout,也有一种办法能解决效率问题,就是在主函…
From:http://www.cnblogs.com/killerlegend/p/3918452.html Author:KillerLegend Date:2014.8.17 杭电OJ之3233很简单的一个问题,谁知道一直提示我超时,超时,最后都快哭了,C++代码如下: #include <iostream> #include <iomanip> using namespace std; int main() { ; while(cin>>t>>tmp…
printf和scanf是c语言的输入输出,学习c++以后,自然是用cin cout这两个更简单的输入输出 printf scanf 都需要进行格式控制,比较麻烦,但优点是速度比较快,毕竟多做了一些事情 cin cout速度较慢,在oj上或者是竞赛时,如对时间需求较高,则最好改为printf scanf 另外,printf在控制输出格式的时候比cout更加方便 尤其是几位小数的控制输出,比如只输出两位小数,精确到两位小数,需要四舍五入 这最适合用printf     格式控制字符串为  "%x.…
最近在练机试题,常用的C和C++输入输出如下: 1 scanf 和printf int a; scanf("%d",&a) ; printf("%d",a); printf("\n"); double b;scanf("%"); char c; scanf("%c",&c);printf("%c",c); long int a; scanf("%ld"…
转自http://www.cnblogs.com/penelope/articles/2426577.html  cin .cout   基本说明: cin是标准输入流对象,代表标准输入设备(键盘),使用方法:cin >> 变量.功能:数据通过输入设备放在缓存区,cin从缓存区中读出数据存到变量中. cout是标准输出流对象,代表标准输出设备(显示器),使用方法:cout << 变量.功能:从变量中读取数据放入缓存区,然后经输出设备显示数据. cin,cout,重载了"&…
在比赛里,经常出现数据集超大造成 cin TLE的情况.这时候大部分人(包括原来我也是)认为这是cin的效率不及scanf的错,甚至还上升到C语言和C++语言的执行效率层面的无聊争论.其实像上文所说,这只是C++为了兼容而采取的保守措施.我们可以在IO之前将stdio解除绑定,这样做了之后要注意不要同时混用cout和printf之类. 在默认的情况下cin绑定的是cout,每次执行 << 操作符的时候都要调用flush,这样会增加IO负担.可以通过tie(0)(0表示NULL)来解除cin与c…
题目 输入正好是long long的最大, 但是答案超long long 所以用unsigned, 不能用cin cout否则一定超时: 不能用abs(), abs 只用于整数. unsigned   int   0-4294967295   int   2147483648-2147483647 unsigned long 0-4294967295long   2147483648-2147483647long long的最大值:9223372036854775807long long的最小值…