호텔을 관리하는 클래스 용 프로그램을 만들고 있습니다. 고객을 성공적으로 체크인 할 수 있습니다. 그러나 방에서 고객을 체크 아웃하려고하면 런타임 오류가 발생합니다. 벡터 반복기가 호환되지 않습니다. 디버거를 실행하고 문제가 내 while 루프의 조건문에 있다고 말했지만 문제가 무엇인지 파악할 수 없습니다 (디버거를 올바르게 사용했다고 생각합니다). 이 비슷한 오류가있는 다른 게시물을 보았지만 솔루션을 찾을 수 없었습니다. 누구든지 도와 줄 수 있습니까? erase
동작이 수행 된 후에오류 받기 : 벡터 반복기가 호환되지 않음
void Customer::removeRoomID(int rID)
{
vector<int>::iterator iter;
iter = roomsCheckedInto.begin();
while(iter != roomsCheckedInto.end()) // <--DEBUGGER SAYS ERROR IN THIS LINE - ERROR: VECTOR ITERATOR INCOMPATIBLE
{
if(*iter==rID)
{
roomsCheckedInto.erase(iter);
}
}
}
[지우기 삭제 관념] (http://en.wikipedia.org/wiki/Erase-remove_idiom)을 권하고 싶습니다. –