私は地図を持っています
std::map<std::string, my_class*> name2ptr;
最初にマップをトラバースして my_class ポインターを削除し、後でマップをクリアして、マップのコンテンツを削除しようとしました。さて、マップにペアが 1 つしかない場合に問題が発生します。マップには現在 1 つのエントリしかありません
<"ajay", 0xabcd>
delete((*itr).second) でクラッシュします。for ループは以下のとおりです。
name_map_type::iterator itr;
for( itr= name2ptr.begin();itr!=name2ptr.end();itr++){
if((*itr).second){
delete ((*itr).second);
}
}
name2ptr.clear();
どうすればこれを解決できますか?