C++ 读入优化与输出优化 模板

2023-05-16

来自:https://blog.csdn.net/liyizhixl/article/details/54412459

简介

  • C++ 是一种神奇的编程语言……

  • 自然,读入和输出也有着许多种形式:

  • 如:scanf()&#xFF0C;cin&gt;&gt;&#xFF0C;cout&lt;&lt;&#xFF0C;printf()” role=”presentation”>scanf()cin>>cout<<printf()scanf(),cin>>,cout<<,printf()

  • 但是我们奉行——效率第一!!!

  • 那么如何提高读入和输出的效率呢?

用法

1. 读入优化

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

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

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

#include<cctype>
inline int read()
{
    int X=0,w=0; char ch=0;
    while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
    return w?-X:X;
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • isdigit(x)” role=”presentation”>isdigit(x)isdigit(x)

  • 注意要用 cctype” role=”presentation”>cctypecctype 头文件。

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

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

inline double dbread()
{
    double X=0,Y=1.0; int w=0; char ch=0;
    while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    while(isdigit(ch)) X=X*10+(ch^48),ch=getchar();
    ch=getchar();//读入小数点
    while(isdigit(ch)) X+=(Y/=10)*(ch^48),ch=getchar();
    return w?-X:X;
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2. 输出优化

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

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

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

inline void write(int x)
{
     if(x<0) putchar('-'),x=-x;
     if(x>9) write(x/10);
     putchar(x%10+'0');
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 同样时间减减!

总结

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

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

注意

  • 切记在使用时,应注意数据类型大小和正负!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 读入优化与输出优化 模板 的相关文章

随机推荐

  • 浙江省赛2015 _ L _ ZOJ 3880

    水题 题目 xff1a ZOJ 3880 There is a popular multiplayer online battle arena game called Demacia of the Ancients There are lo
  • 浙江省赛2015 _ J - Convert QWERTY to Dvorak -> ZOJ 3878

    模拟水题 题目 xff1a ZOJ 3878 Edward a poor copy typist is a user of the Dvorak Layout But now he has only a QWERTY Keyboard wi
  • 浙江省赛2015 _ G - Lunch Time -> ZOJ - 3875

    水题 这道题比赛当时没有做出来 原因是 ends xff0c C 43 43 对ends的处理是在缓冲区插入 0 然后刷新 xff0c 而不是空格 xff0c 能输出空格是因为Windows对 0 默认的处理方式是输出一个空格 xff0c
  • 贪心算法

    算法导引 xff1a 问题 xff1a 有1元 5元 10元 100元 500元的硬币 xff08 假设所有面值硬币都足够 xff09 现在要找给顾客620元 xff0c 最少需要多少枚硬币 xff1f xff08 改编自挑战程序设计竞赛
  • 蓝桥杯_PREV-34_矩阵翻硬币

    题目 xff1a 矩阵翻硬币 链接 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵 随后 xff0c 小明对每一个硬币分别进行一次 Q 操作 对第x行第y列的硬币进行 Q 操作的定义 xff1a 将所有第 i x 行 xff0c 第
  • ONL(open network linux) from OCP

    https opennetlinux org github xff1a https github com OpenComputeProject OpenNetworkLinux Open Network Linux is a Linux d
  • C++ string数组注意事项

    string xff1a 经实践string数组 xff0c 如string s 10100 xff0c 不能使用s j k 61 这种方法赋值 具体原因未知 求教为什么 xff1f
  • CodeForces - 954C - Matrix Walk

    坑题 题目 xff1a CodeForces 954C 题意 矩阵的每一元素可以用 Ai j 61 y i 1 43 j 来表示 xff0c xff08 就是二维数组用一维指针表示的方法 xff09 xff0c 给你一个路径序列 xff0c
  • Mathjex练习

    u k i 61 a k i k 1 j 61 1 l k j u j i u k i 61
  • 转载:全排列与next_permutation

    转载声明 xff1a 来自https blog csdn net yingyujianmo article details 52046398 感谢作者的讲解 全排列是面试笔试过程中经常遇到的一个问题 对于练习过的同学来说 xff0c 这个问
  • 转载:如何快速转载CSDN中的博客

    转载声明 xff1a 来自https blog csdn net bolu1234 article details 51867099 感谢作者的分享 前言 对于喜欢逛CSDN的人来说 xff0c 看别人的博客确实能够对自己有不小的提高 xf
  • Matlab日记

    Matlab中对clear函数赋值后如何清除变量 xff1f 方法很多 xff0c 一般用 builtin clear b u i l t i n 执 行 内 建 的 函 数 b u i l
  • QT_Windows_命令行下编译,发布

    本文所使用到的资源链接 xff1a 1 所有QT版本镜像下载 2 单文件制作封装工具Engima Virtual Box 环境配置 xff1a 报如下错 xff0c 参考这个 在我这里是因为 xff1a 系统的环境变量的目录中有几个版本不同
  • 容斥原理详解

    翻译 xff1a vici 64 cust 对容斥原理的描述 容斥原理是一种重要的组合数学方法 xff0c 可以让你求解任意大小的集合 xff0c 或者计算复合事件的概率 描述 容斥原理可以描述如下 xff1a 要计算几个集合并集的大小 x
  • 2018ACM/ICPC全国邀请赛(江苏) 总结

    抱憾打铁 整理了一下今天的思路 xff0c 记录如下 开始时我先开的A题 xff0c 我感觉是模拟 xff0c 和lqs讨论了一下 xff0c 感觉会T xff0c 就想其他方法了 开始wjj开的B xff0c 他说感觉是推个公式 xff0
  • HDU 1002 Java大数

    题意很简单输出 a 43 b a 43 b 只不过 a a 和 b b 都很大 xff0c 需要处理大数问题 Java大数解决方法 xff0c 详见代码 xff1a import java io import java util impor
  • broadcom OF-DPA

    https www broadcom com products ethernet connectivity software of dpa http broadcom switch github io of dpa doc html OFD
  • 【论文笔记】Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition...

    Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition 2018 01 28 15 45 13 研究背景和动机 xff1a 行人
  • Windows下GCC编译环境中文乱码解决方案

    转载声明 xff1a 来自https blog csdn net MyLibs article details 27913281 在编译参数中增加以下两条指令 xff1a fexec charset 61 gbk finput charse
  • C++ 读入优化与输出优化 模板

    来自 xff1a https blog csdn net liyizhixl article details 54412459 简介 C 43 43 是一种神奇的编程语言 自然 xff0c 读入和输出也有着许多种形式 xff1a 如 xff