插入具有多对多关系的boost bimap

时间:2012-01-02 20:18:00

标签: c++ boost many-to-many bimap

我想创建一个描述帖子和标签之间关系的数据结构。每个帖子都可以有多个标签,标签可以应用于很多帖子。

每个帖子和标签都可以通过密钥进行唯一标识(比方说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将允许不止一次插入相同的(post,tag)对(因为它使用多重集来表示关系)。使用unconstrained_set_of_relation我无法弄清楚如何将元素插入此容器(没有定义插入)。

  1. 可以boost::bimap描述这种关系吗?
  2. 如何进行插入?
  3. 对于这种情况,Boost.MultiIndex是更好的选择(更容易使用/更有效率)吗?

0 个答案:

没有答案