1

最近、boost には bimap という名前の双方向マップ実装があることがわかりました。

私の最初の STL マップは、次の 2 つのタイプを使用していました。

  • intキータイプとして
  • std::weak_ptr<void>値の型として (と呼びましょうX)

シナリオ 1

これらのタイプで bimap を作成するには、宣言は次のようになります。

boost::bimap<int, boost::bimaps::set_of<X, std::owner_less<X>>>

std::weak_ptrより少ない演算子( によって提供される)が必要であり、(私が正しく理解していれば)使用できるようstd::owner_lessに型にリンクされているためです。boost::bimaps::set_of

シナリオ 2

intマップの type キーが type の複数の値を指すようにしますX

標準マップの場合、次のように値の型を からXに変更してstd::list<X>も問題ありません。 std::map<int, std::list<X>>

map<X,int>右のマップ​​ ビューが(のリストを平坦化X)として解釈され、右のマップ​​ ビューmap<int,list<X>>

4

0 に答える 0