iterator
순회 전에는 범위, 요구 범주, 무효화를 한 번에 본다
반복자는 위치뿐 아니라 알고리즘 요구 능력과 변경 후 유효성까지 포함한다.
1. 범위first/last 짝
2. 범주알고리즘 요구 능력
3. 수정무효화 가능성
4. 결과반환값 후처리
| 구분 | 판단 기준 | 다음 행동 |
|---|---|---|
| 범위 | 서로 다른 컨테이너 반복자를 섞지 않았는가 | begin/end 출처 확인 |
| 범주 | sort처럼 random access가 필요한가 | list는 멤버 함수 사용 |
| 무효화 | 순회 중 컨테이너를 바꾸는가 | erase 반환값 또는 재획득 |
| 후처리 | 알고리즘 반환값이 새 경계인가 | remove/unique 뒤 erase |
핵심 순회 전 네 질문만 통과하면 대부분의 반복자 오용을 미리 걸러낼 수 있다.