Geschwindigkeitsvergleich: scanf() vs. cin
Frage:
Ist es wahr? dass die Verwendung von scanf() in C-Programmen schneller ist als die Verwendung von cin?
Antwort:
Ja, scanf() ist tatsächlich schneller als cin in C, wie Benchmarking-Ergebnisse zeigen.
Um das durchzuführen Test wurde ein einfaches Programm geschrieben, um eine große Liste von Zahlen zu lesen und ihren XOR-Wert zu berechnen. Das Programm wurde sowohl mit stdios scanf() als auch mit iostreams cin und cout implementiert.
Ergebnisse:
Method | Execution Time |
---|---|
scanf() | 6.4 seconds |
cin and cout | 24.3 seconds |
Dieser erhebliche Geschwindigkeitsunterschied ist hauptsächlich auf die iostream-Funktionen zurückzuführen ' Aufwand bei der Aufrechterhaltung der Synchronisierung mit den Standardfunktionen von C.
Optimierung cins Leistung:
Durch Deaktivieren der Synchronisierung mit std::ios::sync_with_stdio(false) kann die iostream-Version jedoch eine vergleichbare Leistung erzielen:
Method | Execution Time |
---|---|
cin and cout (with sync_with_stdio(false)) | 5.5 seconds |
Mit dieser Optimierung , iostream übertrifft scanf() und wird der schnellste Methode.
Schlussfolgerung:
Obwohl scanf() von Natur aus schneller als cin ist, wird seine Verwendung in C-Programmen im Allgemeinen nicht empfohlen, weil:
Das obige ist der detaillierte Inhalt vonscanf() vs. cin: Was ist schneller für C-Eingabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!