在 C++ 中查找存在于第一个数组中但不在第二个数组中的元素


假设我们有两个数组 A 和 B,它们有一些元素。我们需要找到那些存在于集合 A 中但不存在于集合 B 中的元素。如果我们考虑这种情况,并将 A 和 B 视为集合,那么这本质上就是一个集合差分操作。A 和 B 之间的集合差分将返回这些元素。

示例

#include<iostream>
#include<set>
#include<algorithm>
#include<vector>
using namespace std;
void setDiffResults(int A[], int B[], int An, int Bn) {
   sort(A, A + An);
   sort(B, B + Bn);
   vector<int> res(An);
   vector<int>::iterator it;
   vector<int>::iterator it_res = set_difference(A, A + An, B , B + Bn, res.begin());
   cout << "Elements are: ";
   for(it = res.begin(); it < it_res; ++it){
      cout << *it << " ";
   }
}
int main() {
   int A[] = {9, 4, 5, 3, 1, 7, 6};
   int B[] = {9, 3, 5};
   int An = 7, Bn = 3;
   setDiffResults(A, B, An, Bn);
}

输出

Elements are: 1 4 6 7

更新日期:01-11-2019

132 次浏览

开启您的职业生涯

完成课程获得认证

开始
广告