オープンソース プロジェクト (no-boost) を検索すると、双方向マップを実装するSTL のようなコンテナーが見つかりbimap
ました。またmultimap
、標準の C++ ライブラリにもあります。
- しかし、知りたいのですが、「STLのような双方向マルチマップ」を実装する努力はありますか?
- または、既存のコンテナーをどのように組み合わせて、そのデータ構造を作成できるでしょうか?
注: 簡単な解決策はmultimap
、双方向で 2 つの を使用することです。しかし、それは良いパフォーマンスを持っていません。insert
//remove
操作ごとfind
に 2 回実行する必要があるためです。さらに、より多くのメモリを割り当てます。
注 II: これboost.bimap
は HostileFork と KerrekSB からの良い提案です。方法がない場合は使用します。しかし、その前に、非ブーストでサイズの小さいクラス ライブラリを見つける必要があります。