在C ++中获取联合,交集或集合的差异

时间:2009-11-14 23:47:15

标签: c++ map set intersection unions

我有几个关于如何使用C ++集(std :: set)

的问题
  1. 有没有办法获得两个C ++集的并集,交集或差异? (编写我自己的函数很容易做到这一点,但我想知道它是否有内置函数)

  2. C ++集可以用作地图中的键吗?

3 个答案:

答案 0 :(得分:16)

使用set_difference()set_union()set_intersection()set_symmetric_difference()功能。

设置和映射支持任何可以比较的键类型。默认情况下,这意味着类型已定义operator<(),但您可以提供自己的比较器。 C ++集没有定义operator<(),因此除非您提供自己的比较器,否则不能用作键。

答案 1 :(得分:9)

关于你的第一个问题,请看看

答案 2 :(得分:3)

只要您提供可以比较它们的类或函数,任何东西都可以用作地图中的键。 Here就是一个例子。