Salut,
je poste ici car j'ai remarqué qu'un parcours de conteneur avec itérateur sous visual studio (visual 2008 express) est plus lent qu'un parcours par indices.
En gros ce code :
va être plus lent que ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (vector<MyClass> it = myVector.begin(); it != myVector.end(); ++it) { it->myFunction(); //... }
Je compile en release avec toutes les opti de vitesse activées (je pense) et pour un grand nombre d'objets, la méthode 1 est plus lente que la méthode 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (size_t i = 0; i < myVector.size(); ++i) { myVector[i].myFunction(); //... }
Je pense que visual doit vérifier la validité à chaque tour de boucle ou quelque chose comme ca. Y aurait il une option que j'ai oublié d'activer ou quelque chose ?
Je trouve ca dommage parceque du coup ca ne me pousse pas a utiliser les itérateurs alors que c'est une manière plus élégante de faire ses boucles.
Quelqu un a déjà remarquer ca ? Avez vous une solution ?
Merci beaucoup
Partager