我们可以像在STL中的set_intersection和set_difference那样实现multimap_intersection或multimap_difference函数吗?
答案 0 :(得分:1)
这个问题很模糊,评论澄清了一些但并非所有问题。最简单的答案是你可以实现(给定一个正确的定义)几乎任何东西,因此你可以实现你的多重映射的差异或交集的版本。如果问题是set_difference
是否可以直接用于您的目的,答案是否定的。
问题是set_intersection
和set_difference
是基于迭代器范围排序的假设实现的,对于键是正确的>在一个有序的关联容器(set
,map
,multiset
,multimap
)中,但不是(key,value)的组合,这似乎是你想要的获得差异。
解决方法是创建一个仿函数,用于比较键值对的类型,并将其用作set
(不是multiset
)的排序。然后,您可以将多图中的值插入到集合中并对其进行操作。最后通过从交叉/差异集创建新的多图来反转操作。