Les iterateurs dans c++

cs_mohamed1985
Messages postés
7
Date d'inscription
samedi 28 avril 2007
Statut
Membre
Dernière intervention
9 juin 2008
- 31 mai 2007 à 14:41
mezaya
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010
- 1 juin 2007 à 22:43
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

cs_laurent1024
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
26
31 mai 2007 à 15:07
Fonctionnellement ca ne change rien. Techniquement ca doit etre un peut plus rapide (moins d'instructions)  que le it++
0
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
31 mai 2007 à 16:25
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++ (@++)<!--
0
cs_mohamed1985
Messages postés
7
Date d'inscription
samedi 28 avril 2007
Statut
Membre
Dernière intervention
9 juin 2008

31 mai 2007 à 17:18
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
0
luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
31 mai 2007 à 17:50
Non dans les deux cas, tu fais l'itération i=0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
acx01b
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
31 mai 2007 à 20:38
salut

la syntaxe du for:

for(A;B;C) D;

équvalent à

A;
While(B) {
D;
C;
}
0
Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
1 juin 2007 à 10:41
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
0
mezaya
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

1 juin 2007 à 22:43
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 [;)]
0