class A { ··· ···};
map< string, A* > stoaMap;
1)通过迭代器遍历删除
map< string,A* >::iterator iter = stoaMap.begin();
while(iter != stoaMap.end()) //#1
{
//注意要先释放内存,在删除map元素,顺序不能颠倒。
//释放内存
delete iter->second;
iter->second = NULL;
//删除map元素
stoaMap.erase(iter++); //#1
}
注:#1是为了防止迭代器失效。