fork download
  1. #include <iostream>
  2. #include <set>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. class remover {
  7. std::set<int> &s;
  8. public:
  9. remover(std::set<int>& theSet) : s(theSet) {}
  10. void operator()(int val) { s.erase(val); }
  11. };
  12.  
  13. int main() {
  14. std::set<int> set1, set2;
  15.  
  16. set1.insert(1); set1.insert(2); set1.insert(3); set1.insert(4); set1.insert(5);
  17. set2.insert(4); set2.insert(6);
  18.  
  19. for_each(set2.begin(), set2.end(), remover(set1));
  20.  
  21. // Print result: // Expect 1 2 3 5
  22. std::cout << "set1: ";
  23. for (std::set<int>::const_iterator it=set1.begin(); it != set1.end(); it++)
  24. {
  25. std::cout << *it << " ";
  26. }
  27. std::cout << std::endl;
  28.  
  29. return 0;
  30. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
set1: 1 2 3 5