c++的输入优化

    xiaoxiao2025-09-04  433

    入队快1年了,看过各种各样的博客,经常看到有人在输入的时候弄得很麻烦,今天我算是弄懂了原来这是优化,getchar的输入速度比scanf要快所以有大量输入数据的时候,想要节省时间,优化输入是个不错的做法。下面给模板

    const int read() { char ch = getchar(); while (ch<'0' || ch>'9') ch = getchar(); int x = ch - '0'; while ((ch = getchar()) >= '0'&&ch <= '9') x = x * 10 + ch - '0'; return x; }

    输出挂也是有滴!

    template <class T> inline void print_d(T x) { if (x > 9) { print_d(x / 10); } putchar(x % 10 + '0'); }

    鉴于多校的一些迷之卡输入,非要用fread(),这里放个超级输入挂

    namespace IO { const int MX = 5e7; char buf[MX]; int c, sz; void begin() { c = 0; sz = fread(buf, 1, MX, stdin); } inline bool read(int &t) { while(c < sz && buf[c] != '-' && (buf[c] < '0' || buf[c] > '9')) c++; if(c >= sz) return false; bool flag = 0; if(buf[c] == '-') flag = 1, c++; for(t = 0; c < sz && '0' <= buf[c] && buf[c] <= '9'; c++) t = t * 10 + buf[c] - '0'; if(flag) t = -t; return true; } } IO::begin(); IO::read(n);

    转载请注明原文地址: https://ju.6miu.com/read-1302297.html
    最新回复(0)