码迷,mamicode.com
首页 > 其他好文 > 详细

常用读入\输出优化

时间:2018-02-20 21:40:38      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:含义   函数   搜索   优化方法   scanf   max   etc   span   设计   

本文主要讲述常用的2种读入优化方法。
输出优化很少使用,在此简单提一下:也就是把输出的东西先放进字符串,再一次性puts\printf出去。提升不大,不常用。
首先当然需要先知道,scanf/printf比cin/cout快不少。
读入优化:

  1. getchar
    使用getchar一个一个读入字符,转化成数字。比scanf快一些。

    inline int read()
    {
        int f=1,x=0;//f是正负的标识
        char ch;
        do {
            ch=getchar();
            if(ch=='-')
                f=-1;
        } while(ch<'0'||ch>'9');
        do {
            x=x*10+ch-'0';
            ch=getchar();
        } while(ch>='0'&&ch<='9');
        return f*x;
    }

    2.fread
    fread将stdin里的内容读到字符串里,然后利用指针处理。
    首先定义指针和读入的数组:

    #define MAXB 1e7
    //定义读入最长的长度
    char    buf[MAXB], *cp = buf;

    接下来是读入:

    fread(buf,1,MAXB, stdin );//函数具体参数含义请善用搜索引擎

    最后是从中处理出数据(现在这个函数是为了处理int整型而设计)

    void rd( int &x )
    {
        x=0;
        while (*cp<'0'||'9'<*cp)
            cp++;
        while ('0'<=*cp&&*cp<= '9') {
                x=x*10+*cp-'0';
                cp++;
            }
            //cp是当前指针,指向buf数组中目前要读的位置
    }

常用读入\输出优化

标签:含义   函数   搜索   优化方法   scanf   max   etc   span   设计   

原文地址:https://www.cnblogs.com/yyy2015c01/p/8455819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!