C++的输入输出与C的输入输出比较

在acm写题时会发现,很多人在读取题目数据的时候都用scanf,输出时用printf.因为c的输入数出效率高得多,程序运行时间会快很多。甚至有些题用cin,cout解题会tle,换成scanf和printf就过了。看过大神用随机数测试过scanf和cin的效率,最大可能相差十倍。那么为什么备受欢迎的c++会比c的慢很多呢?

c++为了保持c原有的特性,默认情况下cin与stdio保持同步,也就是iostream的缓冲与stdio同步,c++的输入输出能和c的输入输出同时用。正因为这个同步特性,cin与stdin同步进行,cin有了许多额外开销,cout也是如此。但是热衷于用c++输入输出流的就可以用这段代码取消输入输出流的同步特性:

ios_base::sync_with_stdio(false);
注意使用这行代码后就不能用c的scanf和printf了。然后测试后cin和scanf的效率相差无几。
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值