This algorithm helps you to retrieve all the elements contained in the first set (set1), but not in the second (set2).
Here’s the template:
templatevoid Diff(const T& set1, const T& set2, T& res) { T temp; typename T::const_iterator it = set1.begin(); if (&set1 == &set2) return; else { while (it != set1.end()) { if (set2.find(*it) == set2.end()) // element not found temp.insert(*it); ++i; } } temp.swap(result);}