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:
template<class T>
void 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);
}