je comprends pas pourquoi quand, je déclare un itérateur, ceci marche :
Code :
vector<int>::iterator it;
...
if ( *it > *(it+1) ) {
...
}
et cela non
Code :
vector<int>::iterator it;
...
if ( *it > *++it ) {
...
}
merci par avance
Publicité
Posté le 28-02-2010 à 17:47:08
Un Programmeur
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)
Joel F
Real men use unique_ptr
Posté le 28-02-2010 à 19:02:39
et ca n'a pas specialement avoir avec les iterator d'ailleurs