我有这张地图:
map<string, Plaats*> plaatsen;
Run Code Online (Sandbox Code Playgroud)
在一个函数中,我将这个地方添加到这个地图:
Plaats * fromPlace = new Plaats(from);
Plaats * toPlace = new Plaats(to);
auto insertedFrom = plaatsen.insert(pair<string,Plaats*>(from,fromPlace));
auto insertedTo = plaatsen.insert(pair<string,Plaats*>(to,toPlace));
//delete from or to if they are not inserted
if(!insertedFrom.second){
delete fromPlace;
}
if(!insertedTo.second){
delete toPlace;
}
Run Code Online (Sandbox Code Playgroud)
如果元素添加到我的地图中,我需要在析构函数中删除它.
KortstePad::~KortstePad(){
//delete every item in plaatsen
for(pair<string,Plaats*> place : plaatsen){
//Plaats *p = place.second;
delete place.second;
place.second = nullptr;
}
for(pair<string,Plaats*> place : plaatsen){
Plaats *p = place.second;
cout << (p == nullptr) << endl;
} …Run Code Online (Sandbox Code Playgroud)