8

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

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

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

4

2 回答 2

17

使用set_difference()set_union()set_intersection()函数set_symmetric_difference()

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

于 2009-11-15T00:03:07.683 回答
3

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

于 2009-11-14T23:58:08.940 回答