4

我有 N 组让我们说整数。现在我想要一个函数,它可以找到这些集合的交集。例如,对于以下

Set1 = { A, D, E, F, G, L }
Set2 = { N, K, E, G, B, C }
Set3 = { K, P, Q, E, F, G }
Set4 = { Z, Y, C, G, F, E }

由于 E 和 G 在每个集合中,我应该得到{ E, G }输出。最简单的方法是什么。我知道编写自己的代码来做到这一点并不难,但也许已经有一个 STL 或任何其他库函数对此我感兴趣。

4

2 回答 2

3

我能想到的两种可能的解决方案

  1. 将您的集合存储在向量中。使用 对向量进行排序std::sort,并使用 计算集合交集std::set_intersection
  2. 将您的集合存储在 中std::set,这会导致元素被排序,并使用std::set_intersection
于 2013-02-26T11:07:07.980 回答
1

std::set_intersection。(正如评论中已经指出的那样,您可能想要交集,而不是联合。)

于 2013-02-26T10:57:32.470 回答