C++ · ITERATOR

반복자 무효화 규칙

반복자는 컨테이너 내부 저장 위치를 가리키므로 삽입, 삭제, 재할당 후 계속 쓸 수 있는지 컨테이너마다 다릅니다.

반복자 무효화 구조

invalidation
vectorreallocation 시 대부분 무효화
deque끝/중간 조작별 규칙 차이 큼
list삭제된 원소 반복자만 무효화
map/set삽입 안정, 삭제 원소만 위험
vectordequelistmap/set

반복자 무효화 기준

점검
reservevector는 미리 용량을 잡아 재할당 위험을 줄입니다.
erase 반환값삭제 후 다음 반복자는 erase의 반환값으로 이어갑니다.
참조도 확인iterator뿐 아니라 reference와 pointer 생존 여부도 봐야 합니다.
루프 수정순회 중 삽입/삭제는 컨테이너 규칙에 맞춰 루프를 다시 짭니다.