C/C++输入输出优化(快读)
提供string和所有数字类型的输入输出
其中输入方式每样提供两种
读入char[]可以使用
char s[100];
strcpy(s,reads().c_str());
来解决
代码:
inline string reads()//相当于cin
{ string s="";
char c=getchar();
for(;c==' '||c=='\n'||c=='\r';c=getchar());
for(;c!=' '&&c!='\n'&&c!='\r'&&c!=EOF;c=getchar())s+=c;
return s;
}
inline void reads(string &s){s=reads();}
inline string readln()//相当于getline
{ string s="";
char c=getchar();
for(;c=='\n'||c=='\r';c=getchar());
for(;c!='\n'&&c!='\r'&&c!=EOF;c=getchar())s+=c;
return s;
}
inline void readln(string &s){s=readln();}
//这个没测试过,理论上会快一点吧
inline void prints(string &s){for(char c:s)putchar(c);}
#define isdigit(x) ((x)>='0'&&(x)<='9')
//用法 变量=read<类型名>();
template<class T>
inline T read()
{ T x=0,f=1;
char c=getchar();
for(;!isdigit(c);c=getchar())f=(x=='-'?-1:1);
for(;isdigit(c);c=getchar())x=(x<<3)+(x<<1)+(c&15);
return x;
}
//纯数字读入,用法read(变量);
template<class T>inline void read(T &x){x=read<T>();}
//纯数字输出
template<class T>
inline void print(T x)
{
if(x<0){putchar('-');x=-x;}
if(x>9)print(x/10);
putchar((x%10)|48);
}

浙公网安备 33010602011771号