快速读入函数是利用字符读入比正常读入数字或字符串更加快速的原理而写成的,主要应对卡常的题目
各类数据的快读函数:
int型:
inline int IntRead()
{
char ch = getchar();
int s = 0, w = 1;
while(ch < '0' || ch > '9')
{
if(ch == '-') w = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
s = s * 10 + ch - '0',
ch = getchar();
}
return s * w;
}
longlong int型:
inline ll LintRead()
{
char ch = getchar();
int s = 0, w = 1;
while(ch < '0' || ch > '9')
{
if(ch == '-') w = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
s = s * 10 + ch - '0',
ch = getchar();
}
return s * w;
}
string型:
inline string StringRead()
{
string str;
char s = getchar();
while (s == ' ' || s == '\n' || s == '\r')
{
s = getchar();
}
while (s != ' ' && s != '\n' && s != '\r')
{
str += s;
s = getchar();
}
return str;
}
double型:
inline double DoubleRead()
{
long long s = 0, w = 1, k = 0, n = 0, m = 0;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-') w = -1;
ch = getchar();
}
while((ch >= '0' && ch <= '9') || ch == '.')
{
if (ch == '.')
n = 1;
else if (n == 0)
s = s * 10 + ch - '0';
else k = k * 10 + ch - '0', m++;
ch = getchar();
}
return (pow(0.1, m) * k + s) * w;
}
具体使用方法:
快读函数直接替换输入函数即可。
例:
int a;
同等于 a=IntRead();//cin>>a;