メモリの管理に関して質問です.

↓のように STL の map に値を格納した場合,pair のメモリの解放は
どのように行えば良いのでしょうか?

hmap->insert(new pair<hoge, int>(new hoge(), 0));


「new hoge()」の方は以下のコードでクリア出来るのは分かるのですが,pair
の方はどうすれば良いのか分からず困っています.

for (typename hoge_map::const_iterator i = hmap->begin(); i != hmap->end(); i++) {
delete i->second;
}


アドバイスお願いします.