Heim > Backend-Entwicklung > C++ > scanf() vs. cin: Was ist schneller für C-Eingabe?

scanf() vs. cin: Was ist schneller für C-Eingabe?

Linda Hamilton
Freigeben: 2024-11-19 07:13:03
Original
536 Leute haben es durchsucht

scanf() vs. cin: Which is Faster for C   Input?

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:

  • Im Gegensatz zu cin ist es nicht typsicher.
  • Es führt zu Inkonsistenzen im Programmierstil und vermischt C-Stil und C -Stilcode.
  • iostream bietet eine modernere und effizientere Möglichkeit für Eingabe- und Ausgabevorgänge, insbesondere bei Optimierung durch Deaktivieren der Synchronisierung.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage