onilink_

Intersection

May 31st, 2016
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <set>
  4. #include <algorithm>
  5.  
  6. std::vector<std::string> readUsers(const std::string& fname)
  7. {
  8.     std::vector<std::string> users;
  9.     std::ifstream infile(fname);
  10.     std::string line;
  11.     while(std::getline(infile, line))
  12.     {
  13.         users.push_back(line);
  14.     }
  15.     return users;
  16. }
  17.  
  18. void saveUsers(const std::vector<std::string>& users, const std::string& fname)
  19. {
  20.     std::ofstream file(fname);
  21.     for(auto& user: users)
  22.         file << user << '\n';
  23. }
  24.  
  25. int main()
  26. {
  27.     auto users1 = readUsers("onimille_followers_180.txt");
  28.     auto users2 = readUsers("centauri_followers.txt");
  29.    
  30.     std::sort(users1.begin(), users1.end());
  31.     std::sort(users2.begin(), users2.end());
  32.    
  33.     decltype(users1) intersection(users1.size() + users2.size());
  34.     auto it = std::set_intersection(users1.begin(), users1.end(), users2.begin(), users2.end(), intersection.begin());
  35.     intersection.resize(it - intersection.begin());
  36.    
  37.     for(auto& user: intersection)
  38.         std::cout << user << '\n';
  39.    
  40.     saveUsers(intersection, "intersection.txt");
  41.    
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment