我有几个关于如何使用C ++集(std :: set)
的问题有没有办法获得两个C ++集的并集,交集或差异? (编写我自己的函数很容易做到这一点,但我想知道它是否有内置函数)
C ++集可以用作地图中的键吗?
答案 0 :(得分:16)
使用set_difference()
,set_union()
,set_intersection()
和set_symmetric_difference()
功能。
设置和映射支持任何可以比较的键类型。默认情况下,这意味着类型已定义operator<()
,但您可以提供自己的比较器。 C ++集没有定义operator<()
,因此除非您提供自己的比较器,否则不能用作键。
答案 1 :(得分:9)
关于你的第一个问题,请看看
答案 2 :(得分:3)
只要您提供可以比较它们的类或函数,任何东西都可以用作地图中的键。 Here就是一个例子。