iterator

순회 전에는 범위, 요구 범주, 무효화를 한 번에 본다

반복자는 위치뿐 아니라 알고리즘 요구 능력과 변경 후 유효성까지 포함한다.

1. 범위first/last 짝
2. 범주알고리즘 요구 능력
3. 수정무효화 가능성
4. 결과반환값 후처리
구분판단 기준다음 행동
범위서로 다른 컨테이너 반복자를 섞지 않았는가begin/end 출처 확인
범주sort처럼 random access가 필요한가list는 멤버 함수 사용
무효화순회 중 컨테이너를 바꾸는가erase 반환값 또는 재획득
후처리알고리즘 반환값이 새 경계인가remove/unique 뒤 erase

핵심 순회 전 네 질문만 통과하면 대부분의 반복자 오용을 미리 걸러낼 수 있다.