question sur les iterateurs

question sur les iterateurs - C++ - Programmation

Marsh Posté le 28-02-2010 à 17:47:08    

bonjour,
 
je comprends pas pourquoi quand, je déclare un itérateur, ceci marche :
 

Code :
  1. vector<int>::iterator it;
  2. ...
  3. if ( *it > *(it+1) ) {
  4. ...
  5. }


 
et cela non  
 

Code :
  1. vector<int>::iterator it;
  2. ...
  3. if ( *it > *++it ) {
  4. ...
  5. }


 
merci par avance
 

Reply

Marsh Posté le 28-02-2010 à 17:47:08   

Reply

Marsh Posté le 28-02-2010 à 18:19:31    

Comportement indéfini: on ne peut pas dans une même expression lire une variable et la modifier si la lecture n'est pas pour déterminer la nouvelle valeur.
 
Même raisonnement que pour les i+i++ etc.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 28-02-2010 à 19:02:39    

et ca n'a pas specialement avoir avec les iterator d'ailleurs

Reply

Marsh Posté le 28-02-2010 à 19:37:18    

salut!
 
merci pour vos réponses! c'est clair ... :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed