Comparaison de vitesse : scanf() vs. cin
Question :
Est-ce vrai que l'utilisation de scanf() dans les programmes C est plus rapide que l'utilisation cin ?
Réponse :
Oui, scanf() est en effet plus rapide que cin en C , comme le démontrent les résultats de l'analyse comparative.
Pour mener la test, un programme simple a été écrit pour lire une grande liste de nombres et calculer leur valeur XOR. Le programme a été implémenté à la fois avec scanf() de stdio et cin et cout de iostream.
Résultats :
Method | Execution Time |
---|---|
scanf() | 6.4 seconds |
cin and cout | 24.3 seconds |
Cette différence de vitesse significative est principalement attribuée aux fonctions iostream ' surcharge liée au maintien de la synchronisation avec les fonctions stdio de C.
Optimisation de cin Performance :
Cependant, en désactivant la synchronisation avec std::ios::sync_with_stdio(false), la version iostream peut atteindre des performances comparables :
Method | Execution Time |
---|---|
cin and cout (with sync_with_stdio(false)) | 5.5 seconds |
Avec cette optimisation, iostream surpasse scanf() et devient le plus rapide méthode.
Conclusion :
Bien que scanf() soit intrinsèquement plus rapide que cin, son utilisation dans les programmes C n'est généralement pas recommandée car :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!