코드와 같이, While문 조건에 vector.size() 가 0인지를 검사하는 문구를 넣으면, 벡터 내의 참조 범위를 초과했을 때 뜨는 오류인 "vector subscript out of range"가 뜨더군요. 그래서 할 수 없이 while문 안으로 검사구문을 옮겨서 문제를 해결했습니다. 오류나는 코드는 주석으로 남겨두었는데, 왜 오류가 날까요?
주석 처리된 코드는 s나 b 중 하나라도 크기가 0보다 크면 while 안의 문장을 실행하게 됩니다. 즉 s의 크기가 1이고 b의 크기가 0이라도 s[0] >= b[0]을 계산하려 하는 거죠. 이때 b는 0번째 값이 없으니 out of range 오류가 나게 되구요. 의도하신대로 하려면... ||이 아니라 &&로 조건을 묶어야 할 거 같네요.
cequala 3년 전
코드와 같이, While문 조건에 vector.size() 가 0인지를 검사하는 문구를 넣으면, 벡터 내의 참조 범위를 초과했을 때 뜨는 오류인 "vector subscript out of range"가 뜨더군요. 그래서 할 수 없이 while문 안으로 검사구문을 옮겨서 문제를 해결했습니다. 오류나는 코드는 주석으로 남겨두었는데, 왜 오류가 날까요?