반응형
객체를 지우는 과정에서 나온 런닝 에러, 처음보는 에러에 당황했지만 바로 검색 ㄱㄱ
list iterator not incrementable ==> 말 그대로 리스트의 위치를 가르키는 iterator이
더이상 증가 할 수 없다는 뜻이었다...
그럼 이 에러가 왜 발생했는가????
erase(llist iterator); 함수는 llist iterator 인자값 위치를 지우고 다음 위치를 리턴하는 함수이다.
erase();함수가 다음 위치를 리턴하는 줄을 몰랐던 것이다.......ㅠㅠ
그렇다면 llist iterator가 가리키는 값을 깨끗하게 지우는 법은?
std::list<int*>::iterator it;
for(it = Object.begin(); it != Object.end(); 비워둘것! )
{
if(조건문)
{
delete(*it);
it = Object.erase(it);
}
else
it++;
}
이런식으로 지우는 거라고 합니다.
반응형
'C/C++' 카테고리의 다른 글
C언어 getch() 방향키 입력받기 (getch(), getchar(), getche()) (0) | 2014.06.13 |
---|---|
C++ int to string 함수 to_string() error C2668 에러 (2) | 2014.06.12 |