Bonjour,
Je me pose une question, qui va peut être s'avérer un peu bête, mais j'aimerais bien avoir l'avis de personne qui s'y connaissent bien.
En résumer la question c'est : plutôt i++ ou ++i ? et pourquoi ...
Par exemple, dans une boucle ''for'', j'ai plutôt tendance à écrire :
plutôt que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part for( int i = 0 ; i < 1e6 ; ++i ){ ... }La justification que je me donne en général pour ce choix, c'est celle que j'ai trouvé dans mes cours (comme par exemple ici), mais qui s'applique plutôt pour des itération sur des objets plus gros où l'opérateur ++ est surchargée. D'après mes cours, la post-incrémentation fait une copie temporaire, ce qui est un peu plus couteux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part for( int i = 0 ; i < 1e6 ; i++ ){ ... }
Pourtant, je trouve régulièrement des post-incrémentations dans des codes assez sérieux et plutôt très optimisés, à des endroits où j'aurais plutôt mis un pré-incrémentation pour que ce soit plus rapide (eg. dans un for).
Je suis conscient que sur des entiers, au final, la différence ne doit pas être phénoménale, mais j'aimerais comprendre quand même si c'est une erreur de dire qui ++i est plus rapide que i++.
J'ai voulu essayer de chronométrer les deux options et le résultat n'est pas très clair, plutôt aléatoire en fait. Donc j'imagine que les écarts sont dus à des petites perturbation pendant l'exécution du programme plutôt qu'à l'utilisation d'un opérateur ou d'un autre.
Si quelqu'un a des éclaircissements la dessus, ils sont bienvenus.
Merci
Partager