我有一個對象指針向量。我希望能夠刪除這些對象並釋放這些對象佔用的內存。刪除堆棧中分配的對象指針向量中的元素
什麼我現在是這樣的:
這是一個包含對象的指針向量:
std::vector<Ball*> List;
這是刪除元素的矢量和釋放內存的功能:
void BallManager::DeleteBall(int id)
{
List[id]->~Ball(); //Not sure if this is needed
delete List[id];
List[id] = NULL;
List.erase(List.begin()+id);
}
我的問題是我是否也需要調用析構函數的對象或是由照顧刪除?
我強烈推薦而不是智能指針的矢量。如果你這樣做,你不需要擔心管理指針的內存;簡單地調用'erase'會釋放內存和所有內容。 – chris