컨테이너가 C++에서 어떻게 구현되는지 이해하는데 어려움이 있습니다. 특히 스택에 할당 된 데이터와 힙에 할당 된 데이터를 어떻게 처리 할 수 있습니까? 예 :컨테이너 클래스에 동적으로 할당 된 메모리 다루기
vector<int> VectorA;
VectorA.push_back (1);
VectorA.push_back (2);
VectorA.push_back (3);
vector<int*> VectorB;
VectorB.push_back (new int (1));
VectorB.push_back (new int (2));
VectorB.push_back (new int (3));
VectorB의 정수가 제대로 삭제되는지 확인하는 방법은 무엇입니까? 어딘가에 std :: vector는 소멸자를 호출하고 실제로 아무것도 삭제하지 않는다는 것을 기억합니다. 또한 내 자신의 LinkedList 클래스를 구현하려는 경우이 특정 문제를 어떻게 처리할까요?
후자의 경우 스마트 포인터를 사용하지 않으면 벡터에서 항목을 제거하는 모든 곳에서 포인터로 참조되는 객체를 삭제해야합니다. 포함하는 클래스가 파기되기 전에 이것을 수행해야합니다 (참조 된 객체를 삭제하십시오). – Joe