fork download
  1. #include <vector>
  2. #include <string>
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <algorithm>
  6. #include <set>
  7. #include <iterator>
  8. #include <cstring>
  9.  
  10. using namespace std;
  11.  
  12.  
  13. int main()
  14. {
  15. set<string> a{"aaa","bbb","ccc","ddd","eee","fff"};
  16. set<string> b{"ddd","eee","fff","ggg","hhh","iii"};
  17.  
  18. set<string> res;
  19. set_intersection(a.begin(),a.end(),b.begin(),b.end(),
  20. inserter(res,res.begin()));
  21. for(auto s: res) cout << s << endl;
  22.  
  23. cout << "----------\n";
  24.  
  25. set<const char*> c{"aaa","bbb","ccc","ddd","eee","fff"};
  26. set<const char*> d{"ddd","eee","fff","ggg","hhh","iii"};
  27.  
  28. set<const char*> r;
  29. set_intersection(c.begin(),c.end(),d.begin(),d.end(),
  30. inserter(r,r.begin()),[](const char*x,const char*y){ return strcmp(x,y) < 0; });
  31. for(auto s: r) cout << s << endl;
  32.  
  33. cout << "----------\n";
  34.  
  35. vector<const char*> e{"aaa","bbb","ccc","ddd","eee","fff"};
  36. vector<const char*> f{"ddd","eee","fff","ggg","hhh","iii"};
  37.  
  38. sort(e.begin(),e.end(),[](const char*x,const char*y){ return strcmp(x,y) < 0; });
  39. sort(f.begin(),f.end(),[](const char*x,const char*y){ return strcmp(x,y) < 0; });
  40.  
  41. vector<const char*> g;
  42. set_intersection(e.begin(),e.end(),f.begin(),f.end(),
  43. back_inserter(g),[](const char*x,const char*y){ return strcmp(x,y) < 0; });
  44. for(auto s: g) cout << s << endl;
  45.  
  46. }
  47.  
Success #stdin #stdout 0s 15248KB
stdin
Standard input is empty
stdout
ddd
eee
fff
----------
ddd
eee
fff
----------
ddd
eee
fff