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 de 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 effectuer le 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é avec scanf() de stdio et cin et cout de iostream.
Résultats :
Méthode | Exécution Temps |
---|---|
scanf() | 6,4 secondes |
cin et cout | 24,3 secondes |
Cette différence de vitesse significative est principalement attribuée à la surcharge des fonctions iostream pour maintenir la synchronisation avec Fonctions stdio de C.
Optimisation des performances de cin :
Cependant, en désactivant la synchronisation avec std::ios::sync_with_stdio(false), la version iostream peut obtenir des résultats comparables performances :
Méthode | Exécution Temps |
---|---|
cin et cout (avec sync_with_stdio(false)) | 5,5 secondes |
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 :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3