Advertisement
chevengur

CПРИНТ № 2 | Пары и кортежи | Кортежи. Начало 1/2

Oct 13th, 2023
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4. #include <tuple>
  5.  
  6. using namespace std;
  7.  
  8. enum class Status { ACTUAL, EXPIRED, DELETED };
  9.  
  10. struct Document {
  11.     int id;
  12.     Status status;
  13.     double relevance;
  14.     int rating;
  15. };
  16.  
  17. void SortDocuments(vector<Document>& matched_documents) {
  18.     sort(matched_documents.begin(), matched_documents.end(),
  19.          [](const Document& lhs, const Document& rhs) {
  20.              return tuple(rhs.status, lhs.rating, lhs.relevance) > tuple(lhs.status, rhs.rating, rhs.relevance);
  21.          });
  22. }
  23.  
  24. int main() {
  25.     vector<Document> documents = {
  26.         {100, Status::ACTUAL, 0.5, 4}, {101, Status::EXPIRED, 0.5, 4},
  27.         {102, Status::ACTUAL, 1.2, 4}, {103, Status::DELETED, 1.2, 4},
  28.         {104, Status::ACTUAL, 0.3, 5},
  29.     };
  30.     SortDocuments(documents);
  31.     for (const Document& document : documents) {
  32.         cout << document.id << ' ' << static_cast<int>(document.status) << ' ' << document.relevance
  33.              << ' ' << document.rating << endl;
  34.     }
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement