park780172   4년 전

List의 begin()을 itr이 가리키게 한 다음

itr에 맞는 위치에 insert도 잘 되는데 오류(13번째 줄)가 뜨더라구요.

예상으로는 empty list에 첫 원소를 가리키는 begin()을 할당해줘서 그런 것 같은데

그렇다면, 첫 원소 조차 없는 상태에서는 itr 위치에 맞는 데이터를 insert를 하는 것도 오류가 발생해야하는 걸로 생각하는데(12번째 줄)

발생이 안 되네요..(insert를 할 때 11번째 줄에 선언한 itr도 어떻게 변하는지 잘 모르겠습니다. 그걸 확인하려고 13번째 줄처럼 작성한 것입니다.)

여하튼 13번째 줄 오류 발생 원인을 정확하게 잘 모르겠습니다.

photon1592   4년 전

이렇게 바꾸면 3이 나옵니다.

itr는 끝 위치를 가리키는데, insert가 현재 위치의 앞에 값을 집어넣는 것이라, 마지막 자리에 값을 집어넣고 itr는 다시 끝을 가리키게 되는것입니다.

그래서 insert는 문제가 없이 작동하고

*itr는 끝의 값을 가져오려고 시도하기 때문에 에러가 나는 것입니다.

참고로 여기서 말하는 끝이라는건 마지막 원소가 아니라 배열로 치면 i가 배열의 크기랑 같은 경우입니다.

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