gpt4 book ai didi

c++ - 快速输入输出功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:19 25 4
gpt4 key购买 nike

#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"。我也不知道有什么快速输出功能所以有没有快速输出功能

最佳答案

getchar_unlocked()getchar()的线程不安全版本 getchar_unlocked() 似乎更快的原因是它没有t 检查输入流上是否有任何锁定,它应该从它应该获取字符的地方开始。所以如果另一个线程锁定了输入流,这个线程就是supposed to wait till lock count has come to zero .但是这个函数并不关心它,从而破坏了线程之间的同步。

但如果您确定缺乏同步不会对您造成伤害,那么此功能可能会帮助您更快一些。

另外,它的 advised只有当调用线程使用 flockfile() 锁定标准输入时,您才能安全地使用它(或 ftrylockfile())。

关于c++ - 快速输入输出功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12073617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com