STL 컨테이너에 new로 동적 할당된 객체의 포인터를 저장하고 제거할때에

  • fractize
    fractize

    흐으.. 여기에 적합한 질문은 아닌것 같지만
    c++에 STL을 배워보려고 이래저래 만져보다가 궁금한게 있어서 올립니다.

    STL 컨테이너에

    new 로 생성한 객체의 포인터를 저장하고서

    STL 컨테이너에서 erase하거나 clear를 해서

    그 객체의 포인터를 컨테이너 상에서 제거하면

    제거할 시에 그 포인터가 잡고 있던 메모리도

    자동으로 해제되나요?

    아니면 컨테이너에서 그 포인터를 지우기 전에

    해당 포인터가 잡고 있던 객체를

    명시적으로 delete 해주어야 그 메모리가 완전하게 해방이 되나요?

    만약에 컨테이너에서 erase될때에 해당 포인터가

    가리키고 있던 메모리가 해제된다고 한다면

    컨테이너에서 erase할때에 메모리를 해제하지 않게끔 하는 방법이

    있나요?


    11년 전
1개의 댓글이 있습니다.
  • Being
    Being

    당연히 명시적으로 해방해 주셔야 합니다. :) 얘가 어떤 식으로 생성된 내용인지 컨테이너가 알 수도 없고 알아야 할 이유도 없기 때문이지요.


    11년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.