C++ cin速度优化详解

 更新时间:2020年12月09日 14:27:27   作者:qq_44761480  
这篇文章主要介绍了C++ cin速度优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

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++ cin速度优化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)

    C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_ca

    本文主要介绍了C++强制类型转换,主要介绍了static_cast、dynamic_cast、const_cast、reinterpret_cast的4种方法,感兴趣的可以了解一下
    2021-08-08
  • C语言 数据结构堆排序顺序存储(升序)

    C语言 数据结构堆排序顺序存储(升序)

    这篇文章主要介绍了C语言 数据结构堆排序顺序存储(升序)的相关资料,需要的朋友可以参考下
    2017-05-05
  • C++实现LeetCode数组练习题

    C++实现LeetCode数组练习题

    这篇文章主要介绍了C++实现LeetCode的几道数组练习题,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C语言实现恶作剧关机程序

    C语言实现恶作剧关机程序

    大家好,本篇文章主要讲的是C语言实现恶作剧关机程序,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • QT应用程序cout输出中文乱码解决方法

    QT应用程序cout输出中文乱码解决方法

    本文主要介绍了QT应用程序cout输出中文乱码解决方法,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • C++利用两个栈实现队列的方法

    C++利用两个栈实现队列的方法

    这篇文章主要给大家介绍了关于C++利用两个栈实现队列的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • C++如何判断一个数是不是素数

    C++如何判断一个数是不是素数

    这篇文章主要介绍了C++如何判断一个数是不是素数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C语言超详细讲解指向函数的指针

    C语言超详细讲解指向函数的指针

    C语言程序在编译后,每个函数都有一个首地址(也就是函数第一条指令的地址),这个地址称为函数的指针。可以定义指向函数的指针变量,使用指针变量间接调用函数
    2022-07-07
  • C++中二维map实现读和写

    C++中二维map实现读和写

    在C++中,可以使用std::map来实现二维映射,本文主要介绍了C++中二维map实现读和写,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • C语言从猜数字游戏中理解数据结构

    C语言从猜数字游戏中理解数据结构

    猜数字是兴起于英国的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。游戏规则为一方出数字,一方猜,今天我们来用这个游戏案例理解数据结构
    2022-04-04

最新评论