如何加快cin,cout

cin,cout很常用,但他们速度比较慢

有些时候刷题时TLE了,一心想优化循环,没想到最后查出是他俩拖了后腿🤬

所以如何加快呢?

1.取消缓冲区同步语句  std::ios::sync_with_stdio(false)

C++中cin,cout效率比较低,是因为先把要输出的东西存入缓冲区与C语言中的stdio同步后,再输出,导致效率降低,而这个语句的作用是取消缓冲区同步,直接使用,由此可节省时间,使效率与scanf与printf相差无几。但需要注意的一点是,因为取消与stdio的同步之后,就不建议再使用 printf 与 scanf了,否则实际输出效率可能还会与预期不符。只能用cin 与 cout,以使得cout和cin的效率得到提高

2.使用tie函数减少IO负担

在默认的情况下 std::cin 绑定的是 std::cout,每次执行 << 操作符的时候都要调用 flush() 来清理缓冲区(stream buffer),这样会增加 IO 负担。可以通过这句代码std::cin.tie(0)来解除 std::cin 与 std::cout 的绑定,进一步加快执行效率。

这样效率就会和scanf,printf差不多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值