21xrx.com
2025-03-24 04:31:35 Monday
文章检索 我的文章 写文章
C++实现集合取交集
2023-06-24 03:51:14 深夜i     23     0
C++ 集合 取交集

集合是数学中的一个重要概念,它是一种无序不重复的数据组合。在C++中,可以用STL中的set来实现集合,利用其自动排序和去重的特点能够快速实现集合的操作,特别是取交集。

在C++中,设置两个set集合a和b表示要求交集的两个集合,然后使用set_intersection函数实现交集的获取。其中set_intersection函数需要4个参数,分别是第一个集合的开始迭代器、结束迭代器、第二个集合的开始迭代器以及存放结果的迭代器。

示例代码如下:

#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
  set<int> a = 3;
  set<int> b = 6;
  set<int> res;
  set_intersection(a.begin(), a.end(), b.begin(), b.end(), inserter(res, res.begin()));
  for(auto i: res)
    cout << i << " ";
  
  return 0;
}

运行结果为3 4,即两个集合的交集。

需要注意的是,set_intersection函数要求两个集合必须是有序的,因此在使用前需要先排序。此外,set_intersection函数也可以用于其他STL容器,如vector等。

总之,在C++中实现集合的取交集可以用set容器和set_intersection函数来完成,这一方法简单高效,值得掌握。

  
  

评论区