首页 > 其他分享 >关于cin,cout的 I/O 性能优化【ios::sync_with_stdio(false);】

关于cin,cout的 I/O 性能优化【ios::sync_with_stdio(false);】

时间:2023-12-24 09:23:31浏览次数:42  
标签:false cout stdio ios sync cin

遇到大数据量(cin、cout 数据量级达到 1e5、1e6 ),因为考虑 IO 性能会报错 TLE,一般选择 scanf、printf 替代 cin、cout

但是加上这两段代码,它们之间的速度就相差无几了

ios::sync_with_stdio(false);
cin.tie(nullptr);

在调用 ios::sync_with_stdio(false) 后,cout 与 stdout 不再共享同一块缓冲区,它们分别管理自己的缓冲区。简述,函数作用为设置标准 C++ 流是否与标准 C 流在每次输入/输出操作后同步。

正是因为这种同步,所以 cin、cout 比 scanf、printf 速度要慢,如果我们在使用 cin、cout 输入输出前加一句 ios::sync_with_stdio(false),即取消缓冲区同步,可节省时间,效率与 scanf、printf 相差无几。

 

但是,最重要的一点,一旦取消了同步,就不能再混用 C++ 和 C 的 I/O 函数(如 cin/cout 和 scanf/printf),因为这可能会导致输出顺序不确定或其他问题

综上所述,这段代码通常用于那些需要大量快速 I/O 操作的程序中,如算法竞赛或数据处理应用。但请注意,在取消同步或解除绑定后,你需要更加谨慎地处理 I/O 操作,以避免出现意外的行为。

 

引用:

【C++】ios::sync_with_stdio(false) 与 cin.tie(nullptr) 加速 IO-CSDN博客

标签:false,cout,stdio,ios,sync,cin
From: https://www.cnblogs.com/Yukie/p/17924027.html

相关文章

  • GPU刷BIOS和超频
    GPU刷BIOS打开GPUZ,先备份GPU的BIOS文件点击lookup打开GPU-Z的官网,下载BIOS再去映众的官网,找到显卡超频的软件安装这个的目的,就是为了刷BIOS打开设置,带你BIOS更新。[参考资料]https://www.bilibili.com/video/BV1Jg4y1C79e......
  • electron的渲染进程使用axios时被csp安全拦截的解决方案
    1、问题出现场景脚手架用的是electron-vite,渲染进程是vue3+pinia+vue-router,http请求是使用的axios,在发起请求时发现控制台报csp问题 2、原因分析csp其实就是跨域问题,不支持非同源的资源访问,以往开发普通的vue项目时因为有脚手架里的代理,所以不会出现这种......
  • 客服端日志设计-iOS
    客户端日志系统使用场景用户通过appstore下载app后,在使用过程中出现了异常情况,例如功能异常等.例如BugHD会自动捕获崩溃信息,但开发人员想重现是不容易的.设计方案一.收集log模块化,暴露接口,对日志分级,info,debug(支持打印类似NSLog),warn,error等......
  • Unity3D iOS 系统与 Unity 交互中如何实现参数传递详解
    在Unity3D开发中,与iOS系统的交互是非常常见的需求。而在交互过程中,参数传递是非常重要的环节。本文将详细介绍在Unity3DiOS系统与Unity交互中如何实现参数传递,并给出技术详解以及代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事......
  • @EqualsAndHashCode(callSuper = true/false)
    @EqualsAndHashCode标在子类上callSuper=true,根据子类自身的字段值和从父类继承的字段值来生成hashcode,当两个子类对象比较时,只有子类对象的本身的字段值和继承父类的字段值都相同,equals方法的返回值是true。callSuper=false,根据子类自身的字段值来生成hashcode,当两个子类对......
  • 腾讯QQ9正式发布!4年来最大更新 安卓/iOS/Windows都能下载了
    12月20日消息,今日,腾讯宣布,QQ9正式上线。距离上一次QQ8版本已经过去了4年。据官方介绍,本次版本更新,QQ9采用了全新的QQNT技术架构驱动,性能升级,交互体验更加流畅。全新界面,流畅社交。首先是UI界面全面优化,QQ启动页、登录页、消息列表页、关于页等页面UI焕彩上线。同时,聊天、设置......
  • 从零开始用 Axios 请求后端接口
    对于前端同学来说,请求后端接口是一个非常通用的东西。在十几年前的时候,我们还用Ajax去请求后端接口。但在2023年的今天,很多框架都很成熟了,我们有了更加快捷的方式——Axios框架。请求框架哪家强?对于使用Vue技术栈的同学来说,其实接口请求框架就三种:vue-resource、Axios......
  • iOS项目中加入flutter
    新建一个iOS项目Test在iOS同级目录下建一个flutter modulefluttercreate--templatemodulemy_flutterpodfile编写如下#Uncommentthenextlinetodefineaglobalplatformforyourproject#platform:ios,'9.0'target'Test'do#Commentthenextl......
  • uniapp app安卓、ios文件选择 (上传pdf word video img )等
    1、hybrid 必须放在项目根目录下,不然会调用失效:如图 2、建立nvue 子窗体  代码:1<template>2<viewclass="nvue">3<textclass="popup-item"@click="clickfun">选择文件</text>4<textclass="ddddd......
  • iOS GCDWebServer 搭建本地服务器
    需求场景:H5页面读取系统相册,把选中的图片上传给前端H5.(H5不能直接读取沙盒的路径)方案1:读取到的二进制baseEncode字符串形式交互 弊端:安全性问题:JavaScript在浏览器中运行,可能存在潜在的安全风险,需要谨慎处理用户照片,以免导致隐私泄露或安全问题。性能问题:读取大型......