cequala   3년 전

코드와 같이, While문 조건에 vector.size() 가 0인지를 검사하는 문구를 넣으면, 벡터 내의 참조 범위를 초과했을 때 뜨는 오류인 "vector subscript out of range"가 뜨더군요. 그래서 할 수 없이 while문 안으로 검사구문을 옮겨서 문제를 해결했습니다. 오류나는 코드는 주석으로 남겨두었는데, 왜 오류가 날까요?

pch6828   3년 전

주석 처리된 코드는 s나 b 중 하나라도 크기가 0보다 크면 while 안의 문장을 실행하게 됩니다.
즉 s의 크기가 1이고 b의 크기가 0이라도 s[0] >= b[0]을 계산하려 하는 거죠. 이때 b는 0번째 값이 없으니 out of range 오류가 나게 되구요.
의도하신대로 하려면... ||이 아니라 &&로 조건을 묶어야 할 거 같네요.

cequala   3년 전

헉 정확한 지적 감사드립니다!!

댓글을 작성하려면 로그인해야 합니다.