1. 读入优化

  • C++中有一个函数:getchar() ,用于读入字符,那么这跟读入整数有什么关系呢?

  • 其实,经过类似高精度的处理,就可以实现类型转换啦!

  • 下面是正负数读入优化模板:

  • #include<cctype>
    inline int read()
    {
    int X=,w=; char ch=;
    while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    while(isdigit(ch)) X=(X<<)+(X<<)+(ch^),ch=getchar();
    return w?-X:X;
    }

    isdigit(x)表示 xx 是否是 0 ~ 9 的整数 ,是则返回 truetrue ,不是则是 falsefalse 。

    注意要用 cctype 头文件。

    像这样“X=read()”使用函数即可,效率超高!

    这里补充一个正负实数的读入优化:

    inline double dbread()
    {
    double X=,Y=1.0; int w=; char ch=;
    while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    while(isdigit(ch)) X=X*+(ch^),ch=getchar();
    ch=getchar();//读入小数点
    while(isdigit(ch)) X+=(Y/=)*(ch^),ch=getchar();
    return w?-X:X;
    }
  • 还有一个版本
  • int read(){
    int x=;bool f=;char c=getchar();
    while (c<''||c>''){if (c=='-')f=;c=getchar();}
    while (c>=''&&c<=''){x=(x<<)+(x<<)+(c^);c=getchar();}
    return f?-x:x;
    }
  • 附fread:

    char buffer[],*S,*T;
    inline char Get_Char() {
    if (S==T){
    T=(S=buffer)+fread(buffer,,,stdin);
    if (S==T) return EOF;
    }
    return *S++;
    }
    inline int read(){
    char c;int re=;
    for(c=Get_Char();c<''||c>'';c=Get_Char());
    while(c>=''&&c<='') re=(re<<)+(re<<)+(c-''),c=Get_Char();
    return re;
    }
  • 2. 输出优化

    • 在个别繁杂题目中,也可以使用输出优化!

    • 与读入优化类似,使用用来输出字符的“putchar()”函数,也可到目的

    • 下面是正负数输出优化模板:

    • inline void write(int x)
      {
      if(x<) putchar('-'),x=-x;
      if(x>) write(x/);
      putchar(x%+'');
      }

      总结

      • 使用读入优化与输出优化,可以在一些题目中赢得很多时间,甚至逆转AC!

      • 而且代码很短,性价比很高,完全可以经常使用!

      注意

      • 切记在使用时,应注意数据类型大小和正负!

c++ 快速读入输出的更多相关文章

  1. C/C++快读(快速读入)有多——安全AC

    在一些算法题目中中,有的程序会被卡常(数),就是说,程序虽然渐进复杂度,(通俗来讲:算法的时间复杂度)可以接受,但因为算法本身的时间常数过大,导致程序在一些算法竞赛中超时.这是,快读就显得尤为重要了. ...

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

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

  3. 读入输出优化_C++

    当我们考试时遇到大量的读入或者输出时,这些代码会耗费许多运行程序的时间,导致TL 本来 log2n 的算法因为读入被卡成线性的就太不划算了,所以我们这里要采用读入输出优化 getchar 和 putc ...

  4. hdu6396 /// fread()快速读入挂

    题目大意: 给定n k 给定主角具有的k种属性 给定n个怪兽具有的k种属性和打死该怪兽后能得到的k种属性对应增幅 求主角最多能打死多少怪兽和最终主角的k种属性 k最大为5 开5个优先队列贪心 快速读入 ...

  5. C++读入输出优化

    读入输出优化虽然对于小数据没有半点作用,但是对于大数据来说,可以优化几十ms. 有时就是那么几十ms,可以被卡掉大数据的点 读入优化 int read() { int x=0,sig=1; char ...

  6. [C/C++]快速读入代码(快读)

    快读 1.为什么要有快读 好吧,有些题目看上去十分简单,例如https://www.luogu.com.cn/problem/P4305这道题,实际上数据量巨多,光是一个测试点就可能有几个MB,在这种 ...

  7. 规模数据导入高效方式︱将数据快速读入R—readr和readxl包

    本文由雪晴数据网负责翻译整理,原文请参考New packages for reading data into R - fast作者David Smith.转载请注明原文链接http://www.xue ...

  8. Java基础——基础数据类型与读入输出

    首先我们写完了HelloWorld就学会了java的一种输出 System.out.println() 用起来就像是被强化过的C++的puts函数 或者就是自带endl的cout函数,中间的" ...

  9. fread 快速读入 (神奇挂!)

    注意这里是将后台的所有数据都读入在计算 #include<bits/stdc++.h> using namespace std; #define ll long long namespac ...

随机推荐

  1. Learning-Python【13】:迭代器和生成器

    一.什么是迭代器 迭代指的是一个重复的过程,每一次重复都是基于上一次的结果而来的 # 这里的循环也是一个迭代,每次基于上一次的结果而取值 li = 'hello' i = 0 while i < ...

  2. Visual Studio 2017 配置导出/导入/重置

    1.打开VS,按下面的快捷键呼出命令窗口 Ctrl+Alt+A 2.导入/导出/重置命令 Tools.ImportandExportSettings [/export:filename | /impo ...

  3. Linux系统初始配置标准化

    Inux系统标准化 配置环境:4台Centos7.6版本的虚拟机,刚刚最小化安装完成,未作任何操作,分别是node1.node2.node3.node4 本文打算利用ansible工具对这四台虚拟机进 ...

  4. 1_bytes和str

    数据运算全跳过,语言都一样,格式差异 bytes/str的区别    Python3不会以任意隐式的方式混用bytes和str,不能拼接字符串和字节包也无法在字节包里搜索字符串(反之亦然)    二进 ...

  5. ES6标准之基础

    let和const命令 ES6新增let命令,用于声明变量,是块级作用域. let声明的变量不会像var声明的变量发生“变量提升”现象,所以,变量一定要在声明后使用,不然就会报错. 暂时性死区:只要块 ...

  6. postman(二):使用postman发送get or post请求

    总结一下如何使用postman发送get或post请求 请求 一.GET请求 通常用于请求服务器发送某个资源,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接 1.请求方 ...

  7. pip freeze 命令迁移模块

    问题描述:现有一个测试环境安装了脚本相关的各类模块,现需要不通过联网下载,在另一个环境配置安装相同的模块 解决方案: 在安装了python脚本相关的各类模块的测试环境里,进入到任意目录下,导出pyth ...

  8. c++中的c_str()用法

    语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过st ...

  9. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  10. C++开发者都应该使用的10个C++11特性 转

    http://blog.jobbole.com/44015/// | 分类: C/C++, 开发 | 条评论 | 标签: C++, C语言 分享到: 本文由 伯乐在线 - 治不好你我就不是兽医 翻译自 ...