#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;
}
Hallo Ich habe die obige Funktion für die Eingabe in verschiedenen Codierung Wettbewerbe verwendet, aber war nie in der Lage zu verstehen, warum es schnell ist. Ich kenne die Logik, kenne aber das Konzept der Echtheit nicht. Zum Beispiel was macht diese Zeile "#define getcx getchar_unlocked". Ich weiß auch keine schnelle Ausgabe-Funktion, so gibt es eine schnelle Ausgabefunktion auchSchnelle Eingabe Ausgabefunktion
Hier ist eine weitere SO Frage zu diesem Thema: http://stackoverflow.com/questions/9052757/getchar-unlocked-vs-scanf-vs-cin –
Wie der Name der Funktion suggeriert, ist es nicht Thread sicher, ein Thread sicher Eingabefunktion unter Verwendung eines Synchronisationsmechanismus kann einen erheblichen Leistungsaufwand gegenüber diesem aufweisen. –
Nach der furchtbar ekligen Codeformatierung zu urteilen, war es schneller zu schreiben als eine richtig geschriebene Funktion ... daher ist es 'schnell'. – Lundin