Get the symmetric difference between two sets

Started by aruljothi, Jun 11, 2009, 07:01 PM

Previous topic - Next topic

aruljothi

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;


void print(int elem) {
  cout << elem << " ";
}

int main(int argc, char** argv) {
  vector<int> setOne, setTwo, setThree;
  setOne.push_back(1);
  setOne.push_back(2);
  setOne.push_back(3);
 
  setTwo.push_back(2);
  setTwo.push_back(3);
  setTwo.push_back(4);

  // set algorithms work on sorted ranges
  sort(setOne.begin(), setOne.end());
  sort(setTwo.begin(), setTwo.end());

  vector<int>::iterator  newEnd = set_symmetric_difference(setOne.begin(), setOne.end(), setTwo.begin(),setTwo.end(), setThree.begin());
  cout << "The symmetric difference is: ";
  for_each(setThree.begin(), newEnd, &print);
  cout << endl;

  return (0);
}