欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

C++ cin速度优化详解

时间:2021-11-27 13:45:46|栏目:C代码|点击:

如下所示:

std::ios::sync_with_stdio(false);

很多C++的初学者可能会被这个问题困扰,经常出现程序无故超时,最终发现问题处在cin和cout上,(甚至有些老oier也会被这个问题困扰,每次只能打scanf和printf,然后一堆的占位符巨麻烦),这是因为C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。

然后就可放心的使用cin,cout了。

其实using namespace std;之后就可以:

ios::sync_with_stdio(false);

使用注意

取消流同步以后,stdio中带有的scanf()和printf()输入输出的内部同步也会被取消(大概是这样的,如果有误请联系博主更正),这时候再用scanf()和printf()就可能会出玄学错误,所以用的时候也要注意。最好此时不要与scanf()混用

另外,如果使用文件输入输出的话,一定记住要把这条语句放在freopen()后面,反正也会出西西,但是具体问题博主也不太清楚。。。

补充知识:解决c++ cin,cout 输入输出效率低导致运行结果超时的问题

在做pat的时候,遇到超时问题,首先考虑算法问题,当算法没问题的时候,就要考虑输入输出问题,cin和cout的效率比较低,有两种解决方法。

1.把cin和cout改为scanf和printf

2.不改动cin和cout,在代码中加入代码段:

ios::sync_with_stdio(false);

这个代码段可以大大提高cin和cout的效率问题。

上一篇:C++基础算法基于哈希表的索引堆变形

栏    目:C代码

下一篇:CLOSE_WAIT状态解决方案

本文标题:C++ cin速度优化详解

本文地址:http://www.codeinn.net/misctech/184947.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有