【发布时间】:2021-09-14 23:25:13
【问题描述】:
所以我得到了 2 个向量。我想从两个向量中找到不同的元素。 示例:
2 5 4 6
2 4 3
输出将是 5 3 6 -> 仅出现在其中一个向量中的数字。 这是我迄今为止的尝试:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
std::vector<int> intersection(std::vector<int> &v1,
std::vector<int> &v2){
std::vector<int> v3;
std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
std::set_intersection(v1.begin(),v1.end(),
v2.begin(),v2.end(),
back_inserter(v3));
return v3;
}
int main(){
int a,b;
int digit = 0;
vector<int> v1;
vector<int> v2;
cin >> a >> b;
for ( int i = 0; i < a; i++ ){
cin >> digit;
v1.push_back( digit );
}
for ( int i = 0; i < b; i++ ){
cin >> digit;
v2.push_back( digit );
}
auto res = intersection(v1, v2);
for(int n : res)
std::cout << n << ' ';
}
return 0;
}
这当前返回来自这些向量的公共元素。有没有办法扭转这种情况并返回不常见的元素?
【问题讨论】:
标签: c++ algorithm vector intersection