pyd6119   4년 전

vc 배열을 int 배열로 했을 때는 정답 받았는데

vector로 표현했을 때는 범위가 넘었다고 에러가 뜨더라구요.

디버깅 해본 결과

30~31줄

for (int i = 1; i <= N - 1; i++)
vc[i - 1] = Data[i] - Data[i - 1]; // 숫자 사이 간격들을 vc에 저장.

이 코드에서 문제가 발생했다고 하는데 

이게 왜 범위가 넘은건지 궁금합니다.

evenharder   4년 전

vector에 공간이 할당되어 있지 않기 때문입니다. 기본적으로 vector의 크기는 0입니다.

vc에 직접 원소를 push_back을 해주거나 (vector의 크기에 상관 없이, 맨 뒤에 원소를 추가하는 함수),

resize등으로 사용 가능한 공간을 얻은 후 index를 통해 접근하면 됩니다

자세한 건 C++ vector 사용법을 조금 구글링해보시는 게 좋을 것 같습니다.

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