STLportのhash_mapのiteratorをインクリメントするときにキーが壊れていると正しくインクリメントできません。例えばこんな感じ。
struct X { }; typedef std::hash_map<X*, int> M; M m; m.insert(M::value_type(new X(), 0)); for (M::iterator it = m.begin(); it != m.end(); ++it) delete (*it).first;
インクリメントした後でdeleteすれば大丈夫です。
for (M::iterator it = m.begin(); it != m.end(); ) { std::auto_ptr<X> p((*it).first); ++it; }
std::mapだと前者でも問題にならないので結構はまりました。