博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++的cin和cout取消同步
阅读量:2037 次
发布时间:2019-04-28

本文共 493 字,大约阅读时间需要 1 分钟。

虽然C++有cin函数,但看别人的程序,大多数人都用C的scanf来读入,其实是为了加快读写速度,难道C++还不如C吗!?

其实cin效率之所以低,不是比C低级,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而且是C++为了兼容C而采取的保守措施。

在ACM里,经常出现数据集超大造成 cin TLE的情况。这时候大部分人(包括原来我也是)认为这是cin的效率不及scanf的错,甚至还上升到C语言和C++语言的执行效率层面的无聊争论。其实像上文所说,这只是C++为了兼容而采取的保守措施。我们可以在IO之前将stdio解除绑定,这样做了之后要注意不要同时混用cout和printf之类。

在默认的情况下cin绑定的是cout,每次执行 << 操作符的时候都要调用flush,这样会增加IO负担。可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,进一步加快执行效率。

#include 
int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); // IO}

 

转载地址:http://yfzof.baihongyu.com/

你可能感兴趣的文章
架构师之路(5)---IoC框架
查看>>
ExtJS 实现的Web文件管理系统
查看>>
SOA架构师注意的问题
查看>>
最佳拍档:首席市场官与首席技术官
查看>>
CIO领导力必会的八大诀窍
查看>>
微软技术节(TechFest 2010)最前沿技术汇总
查看>>
SQL 操作结果集 -并集、差集、交集、结果集排序
查看>>
详解索引连接类型
查看>>
托管堆与垃圾收集
查看>>
MySQL初夜(乱码问题,命令行客户端使用)
查看>>
jQuery工具函数
查看>>
cookie
查看>>
javascript之window对象
查看>>
HttpCookie类
查看>>
(转载addone)完全使用Linux作为桌面系统 —— 使用Linux两年记 --软件列表
查看>>
wxzh001,进来看关于APACHE+PHP+MYSQL+SSL的LINUX下安装配置(转自奥索)
查看>>
google app api相关(商用)
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>