Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include <algorithm>
  2. #include <fstream>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6.  
  7. struct Record {
  8.   int id;
  9.   std::string latitude;
  10.   std::string longitude;
  11. };
  12.  
  13. std::ostream& operator<<(std::ostream& os, const Record& record) {
  14.   os << record.id << ' ' << record.latitude << ' ' << record.longitude;
  15.   return os;
  16. }
  17.  
  18. std::istream& operator>>(std::istream& is, Record& record) {
  19.   is >> record.id >> record.latitude >> record.longitude;
  20.   return is;
  21. }
  22.  
  23. int main() {
  24.   const std::string inputFile = "input.txt";
  25.   const std::string outputFile = "output.txt";
  26.  
  27.   std::vector<Record> records;
  28.  
  29.   std::cout << "Reading records from '" << inputFile << "' to memory"
  30.             << std::endl;
  31.  
  32.   {
  33.     std::ifstream ifs(inputFile);
  34.     Record record;
  35.  
  36.     while (ifs >> record) {
  37.       records.push_back(std::move(record));
  38.     }
  39.   }
  40.  
  41.   std::cout << "Sorting records in memory" << std::endl;
  42.   std::sort(records.begin(), records.end(),
  43.             [](const Record &r1, const Record &r2) {
  44.               return r1.longitude > r2.longitude;
  45.             });
  46.  
  47.   std::cout << "Writing records to '" << outputFile << "' file" << std::endl;
  48.   {
  49.     std::ofstream ofs(outputFile);
  50.     for (const auto &record : records) {
  51.       ofs << record << '\n';
  52.     }
  53.   }
  54.   return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement