21xrx.com
2024-12-23 02:45:26 Monday
登录
文章检索 我的文章 写文章
C++实现集合交集、并集、差集操作
2023-07-05 04:12:35 深夜i     --     --
C++ 集合操作 交集 并集 差集

在C++编程中,集合操作是一种十分基础且常见的运算。常见的集合运算包括集合交集、并集、差集等。下面我们来看看如何通过C++代码实现这些集合运算。

首先,我们需要定义集合。在C++中,可以使用数组或者vector来表示集合。由于数组容量是固定的,因此对于大型集合,使用vector会更加方便。以下是用vector定义一个集合的示例代码:


#include <vector>

using namespace std;

vector<int> set1 = 1;

vector<int> set2 = 4;

接下来,我们需要实现集合交集、并集、差集操作。以下是实现这些操作的代码:

1. 集合交集


vector<int> intersection(const vector<int>& set1, const vector<int>& set2) {

  vector<int> result;

  for (int i = 0; i < set1.size(); i++) {

    if (find(set2.begin(), set2.end(), set1[i]) != set2.end()) {

      result.push_back(set1[i]);

    }

  }

  return result;

}

上述代码中,使用了两个vector容器set1和set2,对它们进行了交集运算。首先定义了一个空vector容器result,然后使用for循环遍历set1,对每个元素在set2中查找是否存在,如果存在,就将该元素添加到result中。

2. 集合并集


vector<int> union_set(const vector<int>& set1, const vector<int>& set2) {

  vector<int> result(set1);

  for (int i = 0; i < set2.size(); i++) {

    if (find(set1.begin(), set1.end(), set2[i]) == set1.end()) {

      result.push_back(set2[i]);

    }

  }

  return result;

}

上述代码中,使用了两个vector容器set1和set2,对它们进行了并集运算。首先将set1复制到result中,然后使用for循环遍历set2中的元素,对于set2中非重复的元素,将其添加到result中。

3. 集合差集


vector<int> difference_set(const vector<int>& set1, const vector<int>& set2) {

  vector<int> result;

  for (int i = 0; i < set1.size(); i++) {

    if (find(set2.begin(), set2.end(), set1[i]) == set2.end()) {

      result.push_back(set1[i]);

    }

  }

  return result;

}

上述代码中,使用了两个vector容器set1和set2,对它们进行了差集运算。首先定义了一个空vector容器result,然后使用for循环遍历set1中的元素,对于set1中非重复的元素,将其添加到result中。

通过上述代码,我们可以实现集合操作,包括交集、并集、差集。这些操作的实现十分简单,可以应用到实际编程中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复