大家都很强, 可与之共勉 。

可能还是比不上mmap
但是使用了iostream底层的streambuf,效果极快。

namespace In  {
# define In_Len 2000000static std :: streambuf *fb ( std :: cin.rdbuf ( ) ) ;static char buf [In_Len], *ss ( 0 ), *tt ( 0 ) ;
# define pick( )  ( (ss == tt) ? ( tt = buf + fb -> sgetn ( ss = buf, In_Len ), ((ss == tt) ? -1 : *(ss ++)) ) :*(ss ++) )inline char getc ( )  {  register char c; while ( isspace ( c = pick ( ) ) ) ;  return c ;  }inline int read ( )  {register int x, c ;bool opt ( 1 ) ;while ( isspace ( c = pick ( ) ) && ( c ^ -1 ) ) ;if ( c == 45 )  c = pick ( ), opt = 0 ;for ( x = -48 + c ; isdigit ( c = pick ( ) ) ; ( x *= 10 ) += c - 48 ) ;return opt ? x : -x ;}
# undef pick
# undef In_Len
}namespace Out  {
# define Out_Len 2000000std :: streambuf *fb ( std :: cout.rdbuf ( ) ) ;char buf [Out_Len], *ss ( buf ), *tt ( buf + Out_Len ) ;
# define echo( c )  ( (ss == tt) ? ( fb -> sputn ( ss = buf, Out_Len ), *ss ++ = c ) : ( *ss ++ = c ) )inline void putc ( char c )  {  echo ( c ) ;  }inline void print ( register int x )  {static int st [30], tp ( 0 ) ;if ( ! x )  {  echo ( 48 ) ; return ;  }if ( x < 0 )  {  echo ( 45 ) ; x = -x ;  }while ( x ) st [++ tp] = x % 10 | 48, x /= 10 ;while ( tp )  {  echo ( st [tp] ) ; -- tp ;  }}inline void flush ( )  {  fb -> sputn ( buf, ss - buf ) ;  }# undef echo
# undef Out_Len
}

Update 2017.12.26

更新一个短一点的,In先调用init,Out结束调用flush(当然可以写成class的析构函数……)

namespace In  {
# define In_Len 2000000static std :: streambuf* fb ( std :: cin.rdbuf ( ) ) ;static char buf [In_Len], *ss ( 0 ) ;void init ( )  {  fb -> sgetn ( ss = buf, In_Len ) ;  }inline int read ( )  {register int x ;bool opt ( 1 ) ;while ( isspace ( *ss ) )  ++ ss ;if ( *ss == 45 )  { ++ ss ; opt = 0 ; }for ( x = -48 + *ss ; isdigit ( * ++ ss ) ; ( x *= 10 ) += *ss - 48 ) ; ++ ss ;return opt ? x : -x ;}
# undef In_Len
}namespace Out  {
# define Out_Len 2000000static std :: streambuf* fb ( std :: cout.rdbuf ( ) ) ;static char buf [Out_Len], *ss ( buf ) ;inline void print ( register int x )  {static int T [30], tp ( 0 ) ;if ( ! x )  {  *ss ++ =  48 ; *ss ++ = 10 ; return ;  }if ( x < 0 )  {  *ss ++ = 45 ; x = -x ;  }while ( x ) T [++ tp] = x % 10 | 48, x /= 10 ;while ( tp )  *ss ++ = T [tp --] ;*ss ++ = 10 ;}inline void flush ( )  {  fb -> sputn ( buf, ss - buf ) ;  }# undef Out_Len
}

读入输出优化 黑科技 快过freadfwite相关推荐

  1. C++中的读入输出优化及清新脱俗的宏命令

    C和C++有了#define,从此它就变了模样 宏命令就是#define,#if,#error之类的 本文主要介绍宏命令和相关的骚操作 读入输出优化 inline int read() {int an ...

  2. 快读快写:读入输出优化

    引入 初学OIOIOI的时候,只用的cin/coutcin/coutcin/cout,后来教练说,cincincin很慢,有的数组光读入就超时了--balabalabalabalabalabala,所 ...

  3. Android 编译速度优化黑科技 - RocketX

    一.背景描述 二.效果展示 三.思路问题分析与模块搭建 四.问题解决与实现 五.一天一个小惊喜 六.下一步展望 一.背景描述 在项目体量越来越大的情况下,编译速度也随着增长,有时候一个修改需要等待长达 ...

  4. 腾讯成本优化黑科技:整机CPU利用率最高提升至90%

    腾讯TLinux团队提出了一套全新的混部方案,在不影响在线业务的前提下,对整机CPU利用率提升效果非常明显,在有的业务场景下,整机CPU利用率甚至能提升至90%. 一.前言   腾讯运营着海量的服务器 ...

  5. “本地资源检测” 上手指南,玩转最前沿的优化黑科技!

    UWA本地资源检测是对游戏.VR等项目工程的资源.代码和设置等进行自动检测的服务,是项目研发持续集成.持续交付流程中的重要一环,旨在为游戏研发制定资源与代码规范,帮助研发团队快速发现和解决项目中的性能 ...

  6. 滴滴 App 质量优化黑科技,都做了什么

    点击上方"开发者技术前线",选择"星标" 每天 14.00 在看 | 真爱 作者: 承香墨影 | 来源:公众号 承香墨影 一. 序 当 App 达到一定体量的时 ...

  7. ACM入门之【读入、输出优化】

    本文主要是基于oiwiki的做的总结,未来也会做一系列的相关文章.如果想继续看的话可以关注专栏. 做这个专栏的目的是因为自己最近开始系统的再打一下基础.于是想写一个专栏便于喜爱ACM的初学者入门. 目 ...

  8. 检测图片篡改困难?快来试试这款黑科技

    一.前言 之前看到过一个新闻:上海一对硕士夫妻PS篡改结婚证.离婚证,竟真的骗保成功了: 当时看到这个新闻时我是惊讶又有点惶恐的,惊讶于真有这么胆子大的人,惶恐于最近我们刚好有需要去做一些证件图片是否 ...

  9. 从原生到黑科技:闲鱼 Flutter 图片优化经历了什么?

    简介:阿里妹导读:图片加载是 APP 最常见也最基本的功能,也是影响用户体验的因素之一.在看似简单的图片加载背后却隐藏着很多技术难题.本文介绍闲鱼技术团队在 Flutter 图片优化上所做的尝试,分享 ...

最新文章

  1. js 获取input type=file 文件,并且上传
  2. Docker(七):Docker build 、Docker Dockerfile 详解
  3. leetcode 450. 删除二叉搜索树中的节点 c语言实现
  4. Apache shutdown unexpectedly启动错误解决方法
  5. 股票的科创板,新三板,创业板到底哪个能让你赚钱
  6. 计算机文字录入培训大纲,《计算机文字录入》课程教学大纲
  7. C#DateTime的用法
  8. 推荐十五款APP原型设计工具
  9. CentOS 7 搭建邮件服务器搭建(postfix+dovecot)
  10. iOS设备的越狱方法
  11. zheng-环境搭建及系统部署文档
  12. debian10 buster 在thinkpad T470P 上安装指纹驱动 138a:0097 Validity Sensors
  13. 幼麟棋牌技术分享系列:H5棋牌游戏加载速度优化
  14. linux安装gfortran出现错误,Fortran gfortran linux中出现“Segmentation Fault(core dumped)”错误...
  15. Vue 源码之 mixin 原理
  16. vs2008简体中文正式版下载
  17. 未来低功耗计算机,一种低功耗计算机主板
  18. Windows下Postgresql数据库的下载与配置
  19. eclipse功能template(模板)学习。e.g : 快速在代码中插入时间戳
  20. a session ended very soon after starting. check that the command in profile default is correct

热门文章

  1. 网红奶茶品牌茶颜悦色,开业仅半小时就停业,黄牛价200元一杯
  2. 基于vue-cli3的vue项目 通过postcss-pxtorem 实现px自动转换成rem
  3. 6月服务器维护什么时候结束,2017年6月6日定期维护公告
  4. android 微信好友,朋友圈分享
  5. Android系统字体加载流程
  6. 【进阶篇】前端学习路线
  7. MATLAB 数据分析方法(第2版)1.2 MATLAB基础概述
  8. Moviepy模块之视频添加图片水印
  9. 龙格库塔(runge-kutta,RK)法求解微分方程
  10. 辉芒微IO单片机FT60F024-RB