投稿とタグの関係を記述するデータ構造を作成したいと思います。各投稿には複数のタグを付けることができ、タグは多くの投稿に適用できます。
各投稿とタグは、キー ( としましょうint
) によって一意に識別できます。
特定の投稿のすべてのタグと特定のタグのすべての投稿を効率的に取得できるようにしたいと考えています。
次のようなコードから移動したい:
unordered_map<int, vector<int> > post_to_tags;
unordered_map<int, vector<int> > tags_to_post;
にboost::bimap
。私はこれを試しました:
typedef bimap<
unordered_multiset_of<int>,
unordered_multiset_of<int>,
unconstrained_set_of_relation
> BimapType;
BimapType bm;
unconstrained_set_of_relation
bimap がないと、同じ (投稿、タグ) ペアを複数回挿入できます (リレーションにマルチセットを使用するため) 。このunconstrained_set_of_relation
コンテナーに要素を挿入する方法がわかりません (挿入が定義されていません)。
boost::bimap
この関係を説明できますか?- 挿入はどのように実行できますか?
- この場合、Boost.MultiIndex はより良い選択 (使いやすい/効率的) ですか?