У меня есть циклГде этот код разыменовывает недействительный итератор? (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++;
}
}
}
Но когда-либо antiviral_data содержит элемент, я получаю сообщение об ошибке «вектор итератор не разыменовываемыми.» Почему я получаю эту ошибку и где я разыменовываю недействительный итератор?
NB: Пока что ошибка существует только тогда, когда инструкция if() является ложной. Я не знаю, что произойдет, если инструкция if() верна.
vI всегда два, aI начинается в 0. Спасибо – 2009-05-16 03:13:22