fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iterator>
  5. #include <string>
  6. #include <ostream>
  7.  
  8. struct stockTest
  9. {
  10. std::string title;
  11. std::string getTitle() const { return title; }
  12. stockTest(const std::string s) : title(s) {}
  13. friend std::ostream& operator << (std::ostream& os, const stockTest&);
  14. };
  15.  
  16. std::ostream& operator << (std::ostream& os, const stockTest& s)
  17. {
  18. os << s.getTitle();
  19. return os;
  20. }
  21.  
  22. bool Comparer(const stockTest& f1, const stockTest& f2)
  23. {
  24. return f1.getTitle() < f2.getTitle();
  25. }
  26.  
  27. using namespace std;
  28.  
  29. int main()
  30. {
  31. stockTest s1[] = {stockTest("abc"), stockTest("123"), stockTest("456")};
  32. stockTest s2[] = {stockTest("123"), stockTest("Joe"), stockTest("789"), stockTest("456")};
  33. std::sort(s1, s1 + 3, Comparer);
  34. std::sort(s2, s2 + 4, Comparer);
  35. std::vector<stockTest> v_intersection;
  36. std::set_intersection(s1, s1 + 3, s2, s2 + 4, std::back_inserter(v_intersection), Comparer);
  37. cout << "The similar names are: " << endl;
  38. copy(v_intersection.begin(), v_intersection.end(), ostream_iterator<stockTest>(cout, "\n"));
  39. }
Success #stdin #stdout 0s 3280KB
stdin
Standard input is empty
stdout
The similar names are: 
123
456