fork download
  1. #include <vector>
  2. #include <set>
  3. #include <algorithm>
  4. #include <iostream>
  5. #include <iterator>
  6.  
  7. using namespace std;
  8.  
  9. vector<int> findDublicates(vector<int> const& v)
  10. {
  11. typedef std::set<int> DupSet;
  12. DupSet ds;
  13. DupSet ds2;
  14. vector<int> dublicates;
  15. for_each(v.begin(), v.end(), [&](int n)
  16. {if (ds.find(n) != ds.end()) ds2.insert(n); ds.insert(n); });
  17. copy(ds2.begin(), ds2.end(), std::back_inserter(dublicates));
  18. return dublicates;
  19. }
  20.  
  21. int main()
  22. {
  23. vector<int> test = { 1, 2, 3, 4, 5, 1, 2, 3, 7 };
  24. vector<int> out = findDublicates(test);
  25. copy(out.begin(), out.end(), ostream_iterator<int>(cout, " "));
  26. }
Success #stdin #stdout 0s 3232KB
stdin
Standard input is empty
stdout
1 2 3