我有一个
map<char,my_class*> mymap;
其中的内容如下。
mymap[0]=('a', 0x1);
mymap[1]=('b',0x2);
mymap[3]=('c',0x3);
mymap[4]=('d',0x1);
如您所见,我们对键“a”和“d”具有相同的值。我有一个 for 循环来删除地图中的指针。
for ( it=mymap.begin() ; it != mymap.end(); it++ ){
delete it->second;
}
它崩溃是因为它试图删除 0x1 两次。我试着这样做
for ( it=mymap.begin() ; it != mymap.end(); it++ ){
if(!it->second){
delete it->second;
it->second = NULL;
}
}
即使这会尝试将指针设置为 NULL 两次,这会导致异常。删除地图中上述重复值的最佳方法是什么?