Les iterateurs dans c++

Signaler
Messages postés
7
Date d'inscription
samedi 28 avril 2007
Statut
Membre
Dernière intervention
9 juin 2008
-
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010
-
ma question sur les itérateurs ds c++:
                                                        prquoi on met on incrémente avant de travailler
                                                        ex: for(vector::iterator it=v.begin;it!=v.end();++it)

7 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
Fonctionnellement ca ne change rien. Techniquement ca doit etre un peut plus rapide (moins d'instructions)  que le it++
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ici ça ne change strictement rien. Faire i++ ou ++i dans cette boucle revient au même. La différence survient seulement lorsque la valeur de la variable incrémentée est directement utilisée comme ceci:

if(i++ < 5)
Cette instruction n'est pas du tout équivalente à:
if(++i < 5)
Ici, il y a une différence car on utilise la valeur de la variable avec l'instruction d'incrémentation.

Cependant, comme dans l'exemple suivant, utiliser la pré ou post-incrémentation ne change rien:

if(c == 5)
    i++;
Ici, cette instruction est équivalente à
if(c == 5)
    ++i;
Il n'y a pas de différence car la valeur de la variable n'est pas utilisée avec l'instruction d'incrémentation.

C++ (@++)<!--
Messages postés
7
Date d'inscription
samedi 28 avril 2007
Statut
Membre
Dernière intervention
9 juin 2008

ms si je fais for(i=0;i<=n;++i)//on ne fait pas l'iteration pr i=0
 ms par contre si je fais  for(i=0;i<=n;i++)//on  fait  l'iteration pr i=0
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Non dans les deux cas, tu fais l'itération i=0
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
salut

la syntaxe du for:

for(A;B;C) D;

équvalent à

A;
While(B) {
D;
C;
}
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
Bonjour
mohamed1985 !
je ne comprends pas pourquoi tu bloques sur ce point. on t'a déjà répondu plusieurs fois à la question sur la boucle for et tu continues de la poser. dis nous donc ton véritable problème STP

Merci

Au revoir

Loki
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

juste une précision le i++ fait une copie de l'objet alors que le ++i ne le fait pas. pas très grave pour les type de base car si la copie n'est pas utilisé, le compilo (Visual du moins) le remplace par un ++i.


Voili,Voilou [;)]