J'ai ce code:
int main()
{
vector<int> res;
res.push_back(1);
vector<int>::iterator it = res.begin();
for( ; it != res.end(); it++)
{
it = res.erase(it);
//if(it == res.end())
// return 0;
}
}
"Un itérateur d'accès aléatoire pointant vers le nouvel emplacement de l'élément qui a suivi le dernier élément effacé par l'appel de fonction, qui est la fin du vecteur si l'opération a effacé le dernier élément de la séquence."
Ce code se bloque mais si j'utilise le if (it == res.end ()), puis retourne cela fonctionne. Comment venir? La boucle for encaisse-t-elle res.end () pour que l'opérateur non égal échoue?