输入输出的优化

在默认情况下,std::cin/std::cout 是极为迟缓的输入/输出方式,而 scanf/printf 比 std::cin/std::cout 快得多。

这是由于c++为了兼容c而做的保守操作

这是因为在默认情况下,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱。由于这个特性,所以导致cin和cout有许多额外的开销。

 

关闭同步/解除绑定

std::ios::sync_with_stdio(false);

我们可以在进行 IO 操作之前将 stdio 解除绑定,但是在这样做之后要注意不能同时使用 std::cin/std::cout 和 scanf/printf。更严格的来说:关闭之后C++ IO和C IO 两者不能混用,否则会造成IO混乱。

tie函数加速

std::cin.tie(0); 和 std:cout.tie(0);(0 表示 NULL)

在默认的情况下std::cin 绑定的是 std::cout ,每次执行 << 操作符的时候都要调用 flush(),这样会增加 IO 负担。

tie 是将两个 stream 绑定的函数,空参数的话返回当前的输出流指针。 可以通过std::cin.tie(0) 和std:cout.tie(0)(0 表示 NULL)来解除 std::cin与 std::cout的绑定,进一步加快执行效率。

参考链接:https://blog.csdn.net/hzf0701/article/details/108074798

posted @   深情的山鸡  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示