루프가 있습니다.이 코드는 어디에서 유효하지 않은 반복자를 역 참조하고 있습니까? (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에 항목이 포함되어있을 때 "벡터 반복자가 dereferencable이 아닙니다."라는 오류가 발생합니다. 왜이 오류가 발생하며 유효하지 않은 반복자는 어디에서 참조 해제됩니까?
주의 : 지금까지 if() 문이 false 일 때만 오류가 발생합니다. if() 문이 true 일 경우 어떻게 될지 모르겠습니다.
vI는 항상 2입니다. 감사합니다. 감사합니다. 감사합니다. –