인덱스가 의미 있으면 일반 for, 전체 순회면 range-for를 쓴다

반복문 점검은 문법 선택이 아니라 범위, 변화량, 요소 수정 방식이 맞는지 확인하는 일입니다.

일반 for

위치 번호, 시작점, 끝점, 증감 폭이 문제의 의미일 때 선택합니다.

range-for

컨테이너의 모든 요소를 한 번씩 읽거나 수정하는 것이 목적일 때 선택합니다.

점검 질문
일반 for 신호
range-for 신호
흔한 실수
위치가 필요한가?
i로 인덱스나 건너뛰기를 표현한다.
요소 값만 있으면 된다.
필요 없는 i를 만들어 범위 오류를 만든다.
끝 조건이 맞는가?
i < size처럼 마지막 유효 위치 앞에서 멈춘다.
컨테이너가 범위를 직접 제공한다.
<=로 마지막 다음 칸까지 접근한다.
요소를 바꾸는가?
인덱스로 여러 컨테이너를 함께 바꾼다.
auto&로 실제 요소를 수정한다.
auto 복사본을 바꾸고 원본이 그대로 남는다.