1、当Map中value为指针时,迭代删除方法总结
class A;
map< string, A* > mMap;
//方法一:
map< string,A* >::iterator iter = mMap.begin();
while(iter != mMap.end())
{
delete iter->second;
iter->second = NULL;
mMap.erase(iter++);
}
//方法二:
for (auto iter : mMap) {
delete iter.second;
iter.second = NULL;
}
2、Map查询时,需要进行空判断,判断方法如下:
map< string, A* > mMap;
//如果没找到,需要另做处理
if(mMap.find(key)==mMap.end())
return NULL;