c++ - 如何找到集合的交集

标签 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 或任何其他我感兴趣的库函数。

最佳答案

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

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

关于c++ - 如何找到集合的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087197/

相关文章:

c++ - 当我从文件目录中读取值时,试图将用户定义的对象插入到 vector 中

c - printf 覆盖,strcat 仅附加文件的第一行

c++ - 复数 Gamma 函数

c++ - 嵌入式 Python : Getting func obj from imported module

c++ - SOIL 图像库和释放内存

c - 由于 C 中内存不足导致的段错误

c - 如何在 C 中使用双重结构的动态分配(malloc)?

python - 用 Python 求解联立方程

python - 在 Sympy 中设置变量相对于其他变量的假设

c++ - PThread 初学者 - 启动、同步、停止工作线程