如何找到集合的交集

时间:2013-02-26 10:51:38

标签: c++ c math

我有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或其他任何库函数,我对此很感兴趣。

2 个答案:

答案 0 :(得分:3)

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

  1. 将您的集合存储在向量中。使用std::sort对向量进行排序,并使用std::set_intersection
  2. 计算集合交集
  3. 将您的论坛存储在std::set中,这会导致元素无论如何都会被排序,然后使用std::set_intersection

答案 1 :(得分:1)

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