[C++ STL] `vector.size() - 1`는 위험하다! (언더플로우 주의)

yeonjuLee·2025년 4월 3일

코딩테스트 대비

목록 보기
19/32

vector.size() 주의사항

vector.size()의 반환형은 size_t로, unsigned int 타입이다.
따라서 vector.size() == 0일 때 size() - 1을 하면 -1이 아닌 2^32 - 1이 되어 배열 범위를 초과하여 접근하려고 시도하면서 런타임 에러(out of bounds)가 발생할 수 있다.

올바른 코드 (형 변환 적용)

for (int i = 0; i <= (int)arr.size() - 1; i++) {
    cout << arr[i] << " ";
}
  • (int)로 변환하여 -1을 정상적으로 표현하도록 수정해야 함.

0개의 댓글