J'ai une boucleOù ce code déréférencer un itérateur non valide? (C++)
for(aI = antiviral_data.begin(); aI != antiviral_data.end();)
{
for(vI = viral_data.begin(); vI != viral_data.end();)
{
if((*aI)->x == (*vI)->x && (*aI)->y == (*vI)->y)
{
vI = viral_data.erase(vI);
aI = antiviral_data.erase(aI);
}
else
{
vI++;
aI++;
}
}
}
Mais si jamais antiviral_data contient un élément, je reçois une erreur "vecteur iterator pas dereferencable." Pourquoi ai-je cette erreur et où déréférencer un itérateur invalide? NB: Jusqu'à présent, l'erreur se produit uniquement lorsque l'instruction if() est fausse. Je ne sais pas ce qui se passe si l'instruction if() est vraie.
vI est toujours deux, aI commence à 0. Merci –