#define getcx getchar_unlocked
inline void inp(int &n)//fast input function
{
n=0;
int ch=getcx();int sign=1;
while(ch < '0' || ch > '9'){if(ch=='-')sign=-1; ch=getcx();}
while( ch >= '0' && ch <= '9')
n = (n<<3)+(n<<1) + ch-'0', ch=getcx();
n=n*sign;
}
您好我一直在使用上述函数输入各种编码比赛,但永远不能理解为什么它很快。我知道逻辑,但不知道它的牢固性的概念。例如,这行是做什么“#define getcx getchar_unlocked”。此外,我不知道任何快速输出功能,所以有没有快速输出功能也快速输入输出功能
下面是关于此主题的另一个SO问题:http://stackoverflow.com/questions/9052757/getchar-unlocked-vs-scanf-vs-cin –
由于函数的名称暗示它不是线程安全的,因此线程安全使用同步机制的输入函数与此相比可能会产生显着的性能开销。 –
根据可怕的恶劣代码格式来判断,我猜测写入的速度比正确写入的函数要快,因此速度很快。 – Lundin