010.只是read( )、wr( )
添加实用功能
- 同时读入+自动识别类型
template<typename T,typename...Args>
void read(T&first,Args&...rest){
read(first);
read(rest...);
}
//使用
int a;
long long b;
char c;
string d;
read(a,b,c,d);
- 读写单字符
void read(char &c){
c=getchar();
while(isspace(c))c=getchar();
}
void wr(const char c){
putchar(c);
}
//使用
char op;
read(op);
wr('\n');
wr(' ');
wr('-')
- 直接输出字符串
void wr(const char *s) {
while (*s) putchar(*s++);
}
//使用
wr("YES\n")
wr("NO\n")
wr("Bob\n")
- 同时输出,自动空格分隔
template<typename T,typename...Args>
void wr(const T&first, const Args&...rest){
wr(first);
((putchar(' '),wr(rest)), ...);
}
//使用
wr(a,b,c,d,'\n');
模板
namespace IO{
template<typename T>void read(T&x){x=0;bool f=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}if(f)x=-x;}
void read(string&s){s.clear();char ch=getchar();while(isspace(ch))ch=getchar();while(!isspace(ch)&&ch!=EOF){s+=ch;ch=getchar();}}
template<typename T>void wr(T x){if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;char stk[20];int top=0;while(x)stk[++top]=x%10+'0',x/=10;while(top)putchar(stk[top--]);}
void wr(const string &s){for(char c:s)putchar(c);}
template<typename T>void wr(const T&x,char sep){wr(x);putchar(sep);}
template<typename T,typename...Args>void read(T&first,Args&...rest){read(first);read(rest...);}
void read(char &c){c=getchar();while(isspace(c))c=getchar();}
void wr(const char c){putchar(c);}
void wr(const char*s){while(*s)putchar(*s++);}
template<typename T,typename...Args>void wr(const T&first, const Args&...rest){wr(first);((putchar(' '),wr(rest)), ...);}
}using namespace IO;
又水一篇

浙公网安备 33010602011771号