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 25
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 6
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 6
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
Rejoignez-nous