[펌] stl list 순회도중 삭제하기
Programming/STL / 2011. 6. 8. 04:03
1. 개요
오브잭트 자원관리를 하다보면 오브잭트가 죽거나 더이상 어떤이유로 필요없어질 경우에 리스트에서 제거를 하려면 순회도중 죽었는지 검사해서 루프를 도는 도중 삭제를 해야한다.
2. 구현
it = list1.begin(); while(it != list1.end()) { if(*it == 죽었나?) list1.erase(it++); else ++it; }
3.원리
원리는 먼저 it값이 erase()로 복사되어 넘어가고,
it++가 실행되고, 마지막으로 erase()로 넘어간 복사된 it이 할 일을 마치고 무효화됨.
[출처] stl list 순회도중 삭제하기|작성자 도플광어
반응형
'Programming > STL' 카테고리의 다른 글
STL list를 이용한 LIFO/FIFO 구현 (0) | 2011.05.24 |
---|---|
유틸 클래스 pair (0) | 2011.04.08 |
2.1 문자열을 키로 쓰는 map, set 성능 향상시키기 (0) | 2011.02.07 |
[펌] Effective STL 읽은 후 정리~ (0) | 2011.01.05 |
항목 27 : const_iterator를 iterator로 바꾸는 데에는 distance와 advance를 사용하자. (0) | 2010.11.03 |