私は tr1::unordered_map を試していて、要素を効率的に削除する方法の問題に遭遇しました。「erase」メソッドは、キーまたはイテレータによる削除を提供します。前者はおそらく暗黙の検索操作を伴うため、後者の方が効率的であると思います。一方、インターネットで調査したところ、insert() メソッドを呼び出した後にイテレータが無効になる可能性があることがわかりました。
私は典型的な実世界の状況に興味があります.ハッシュテーブルに入れられたオブジェクトには、その寿命の間にinsert()の呼び出しが発生するのに十分な長さの寿命があります. したがって、そのような状況では、キーによる削除が残された唯一の選択肢であると結論付けてよいでしょうか? オブジェクトをより効率的に削除する方法はありますか? この質問は、削除が頻繁に発生するアプリケーションでのみ重要であることを十分に認識しています。これが私の現在のプロジェクトに当てはまるかどうかはまだわかりませんが、すでに多くのコードが存在する場合よりも、プロジェクトを設計しているときにこれらの問題について学びたいと思います.