1

オープンソース プロジェクト (no-boost) を検索すると、双方向マップを実装するSTL のようなコンテナーが見つかりbimap ました。またmultimap、標準の C++ ライブラリにもあります。

  • しかし、知りたいのですが、「STLのような双方向マルチマップ」を実装する努力はありますか?
  • または、既存のコンテナーをどのように組み合わせて、そのデータ構造を作成できるでしょうか?

注: 簡単な解決策はmultimap、双方向で 2 つの を使用することです。しかし、それは良いパフォーマンスを持っていません。insert//remove操作ごとfindに 2 回実行する必要があるためです。さらに、より多くのメモリを割り当てます。

注 II: これboost.bimapは HostileFork と KerrekSB からの良い提案です。方法がない場合は使用します。しかし、その前に、非ブーストでサイズの小さいクラス ライブラリを見つける必要があります。

4

2 に答える 2

4

Boost.bimapを使用すると、両方の値のコレクションのタイプをカスタマイズできます。どちらも一意ではない可能性があります。

于 2012-11-21T08:21:05.210 に答える
2

ブーストにバイマップがある場合、ランダムな「CodeProject」コードを使用するのはなぜですか?

http://www.boost.org/doc/libs/1_42_0/libs/bimap/doc/html/index.html

ブースト コードは、標準ライブラリの受け入れ可能な方法論に近づけようとします。最終的に受け入れられるようにするための審査プロセスがあります。たぶん次の標準で、誰が知っていますか?

于 2012-11-21T08:21:11.630 に答える