我想创建一个描述帖子和标签之间关系的数据结构。每个帖子都可以有多个标签,标签可以应用于很多帖子。
每个帖子和标签都可以通过密钥进行唯一标识(比方说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
我无法弄清楚如何将元素插入此容器(没有定义插入)。
boost::bimap
描述这种关系吗?