求两个整型数组的异集,即A+B-(A与B的交集)
vector<int> XorSet(vector<int> a, vector <int>b)
{
vector<int>result;
vector<int>::const_iterator pos;
vector<int>::iterator iter=b.begin();
//vector<int>::iterator temp;
while(iter != b.end())
{
pos = find(a.begin(), a.end(),*iter);
if (pos != a.end())
{
//temp = iter;
a.erase(pos);
iter=b.erase(iter);
}
else
{
++iter;
}
}
result.insert(result.end(), a.begin(), a.end());
result.insert(result.end(), b.begin(), b.end());
return result;
}
测试用例
[1,2,3,4]
[2,3,7,8]
int main()
{
vector<int> v1 = { 1, 2, 3, 4 };
vector<int> v2 = { 2, 3, 7, 8 };
vector<int> v3 = XorSet(v1, v2);
for (vector<int>::iterator iter= v3.begin(); iter != v3.end(); iter++)
{
cout <<*iter << endl;
}
return 0;
}