快读快输模板
使用 fread 和 fwrite(mmap不会写)。
浮点数输出精度误差过大,且实现复杂,就没写。
#include <cstdio>
struct IO_Tp {
bool isdigit(char ch) { return ch >= '0' && ch <= '9'; }
const static int _I_Buffer_Size = 2 << 22;
char _I_Buffer[_I_Buffer_Size], *_I_pos = _I_Buffer;
const static int _O_Buffer_Size = 2 << 22;
char _O_Buffer[_O_Buffer_Size], *_O_pos = _O_Buffer;
IO_Tp() { fread(_I_Buffer, 1, _I_Buffer_Size, stdin); }
~IO_Tp() { fwrite(_O_Buffer, 1, _O_pos - _O_Buffer, stdout); }
IO_Tp &operator>>(char *s) {
int _len = 0;
while ((*_I_pos != ' ') && (*_I_pos != '\n')) s[_len++] = *_I_pos++;
return *this;
}
IO_Tp &operator>>(int &res) {
int f = 1;
while (!isdigit(*_I_pos) && (*_I_pos) != '-') ++_I_pos;
if (*_I_pos == '-') f = -1, ++_I_pos;
res = *_I_pos++ - '0';
while (isdigit(*_I_pos)) res = res * 10 + (*_I_pos++ - '0');
res *= f;
return *this;
}
IO_Tp &operator>>(long long &res) {
long long f = 1;
while (!isdigit(*_I_pos) && (*_I_pos) != '-') ++_I_pos;
if (*_I_pos == '-') f = -1, ++_I_pos;
res = *_I_pos++ - '0';
while (isdigit(*_I_pos)) res = res * 10 + (*_I_pos++ - '0');
return *this;
}
IO_Tp &operator>>(double &res) {
double f = 1;
while (!isdigit(*_I_pos) && (*_I_pos) != '-') ++_I_pos;
if (*_I_pos == '-') f = -1, ++_I_pos;
res = *_I_pos++ - '0';
while (isdigit(*_I_pos)) res = res * 10 + (*_I_pos++ - '0');
double t = 0.1;
if (*_I_pos++ != '.') {
res *= f;
return *this;
}
while (isdigit(*_I_pos)) {
res = res + t * (*_I_pos++ - '0');
t = t * 0.1;
}
res = res * f;
return *this;
}
IO_Tp &operator<<(char _ch) {
*_O_pos++ = _ch;
return *this;
}
IO_Tp &operator<<(char *_s) {
int _len = 0;
while (_s[_len]) *_O_pos++ = _s[_len++];
return *this;
}
IO_Tp &operator<<(int _n) {
if (_n < 0) *_O_pos++ = '-', _n = -_n;
static char _buf[20];
char *_pos = _buf;
do *_pos++ = '0' + _n % 10;
while (_n /= 10);
while (_pos != _buf) *_O_pos++ = *--_pos;
return *this;
}
IO_Tp &operator<<(long long _n) {
if (_n < 0) *_O_pos++ = '-', _n = -_n;
static char _buf[20];
char *_pos = _buf;
do *_pos++ = '0' + _n % 10;
while (_n /= 10);
while (_pos != _buf) *_O_pos++ = *--_pos;
return *this;
}
} IO;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现