21xrx.com
2024-11-22 09:50:48 Friday
登录
文章检索 我的文章 写文章
C++ vector 求交集
2023-07-04 20:08:06 深夜i     --     --
C++ vector 求交集

C++中的vector是一个非常有用的数据结构,它可以存储数列并提供一些方便的操作,比如说求交集。对于两个数列A和B,它们的交集表示在两个数列中都出现过的元素。下面我们来看一下如何使用C++中的vector来求交集。

首先,我们需要将数列A和B存储在两个vector中,代码如下所示:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

int main() {

  vector<int> A = 3;

  vector<int> B = 3;

}

接下来,我们可以使用C++中的STL库提供的算法函数来求两个数列的交集。具体来说,我们可以使用std::set_intersection函数来实现。该函数需要接收四个参数:两个数列的起始位置和结束位置。代码如下所示:


vector<int> res;

set_intersection(A.begin(), A.end(), B.begin(), B.end(), back_inserter(res));

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

  cout << res[i] << " ";

}

// Output: 3 4 5

以上代码中,我们首先定义了一个空vector res,然后使用std::set_intersection函数来求A和B的交集,将结果保存在res中。需要注意的是,我们使用C++中的back_inserter函数将交集插入到res的末尾。最后,我们遍历res并输出结果。

当然,我们也可以使用其他方式来实现求交集的功能。比如说,我们可以使用C++中的循环,遍历A和B,然后将它们的交集插入到一个新的vector中。代码如下所示:


vector<int> res;

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

  for (int j = 0; j < B.size(); j++) {

    if (A[i] == B[j]) {

      res.push_back(A[i]);

    }

  }

}

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

  cout << res[i] << " ";

}

// Output: 3 4 5

以上代码中,我们使用两个循环遍历A和B,并将它们的交集插入到一个新的vector res中。最后,我们遍历res并输出结果。

总的来说,C++ vector是一个非常有用的数据结构,它可以存储数列并提供一些方便的操作,比如说求交集。无论是使用STL库提供的算法函数,还是使用循环,都可以轻松地实现求交集的功能。

  
  

评论区

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