🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

iterator의 begin, end, insert, erase함수에서 iterator를 반환할 때 일어나는 현상이 궁금합니다

24.03.07 10:28 작성 조회수 95

0

반환할 때

return iterator(node) 이런식인데

이러면 임시객체를 생성해서 리턴하니까

return 하고 나서 사라지지 않을까요???

 

예상은 해봤는데

list가 iterator를 하나만 가지기 위함이라고 생각해봤습니다.

new를 써서 동적할당으로 하면 함수를 호출할때마다 iterator가 늘어나니까 그럴 수 있다고 생각했는데

만약 맞다면

임시객체를 리턴할 때 어떤 현상이 일어나는지 알고 싶습니다

답변 1

답변을 작성해보세요.

1

그렇지 않구요. new를 매 번 하면 성능이 뚝뚝 떨어지겠죠.
iterator는 임시객체 생성하고, 추후 삭제되는 것도 맞지만
삭제되어도 아무런 상관이 없는 껍데기입니다.

iterator 내부에 포인터를 들고 있는 것이기 때문이죠.
즉 Iterator는 복사해서 데이터만 전달해주면 끝이고,
그 객체가 소멸되는 것은 딱히 상관 없습니다.

채널톡 아이콘