我从这个链接 https://www.codechef.com/viewsolution/1715623 中获取了这段代码 我无法理解 scan() 函数如何帮助进行快速输入
#define g getchar_unlocked()
int scan()//fast input output
{
int t=0;
char c;
c=g;
while(c<'0' || c>'9')
c=g;
while(c>='0' && c<='9')
{
t=(t<<3)+(t<<1)+c-'0';
c=g;
}//end fast input output
return(t);
}
最佳答案
用户定义函数 scan()
使用库函数 getchar_unlocked()
它比 getchar()
和任何其他标准输入方法更快,因为它不是线程安全的。
内部函数循环仅用于考虑数字输入(并使用移位运算符而不是乘法以获得额外的性能增益,必须在使用前进行测试)。
并且这个函数包含可能的 int 溢出。
关于c - 为什么这个 C/C++ 代码有助于快速输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56242242/