Advertisement
35657

Untitled

May 24th, 2024 (edited)
509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. template<typename container>
  6. void print(container cont) {
  7.     for (const auto& a : cont) {
  8.         std::cout << a;
  9.     }
  10.     std::cout << std::endl;
  11. }
  12.  
  13. struct student {
  14.     std::string name;
  15.     std::string surname;
  16.     int course; // от 1 до 5
  17.     int rating; // до 100
  18.     double average_score; // до 5
  19. };
  20.  
  21.  
  22. std::ostream& operator<<(std::ostream& output, const student& st) {
  23.     output << st.name << " " << st.surname << " " << st.course << " " << st.rating << " " << st.average_score << std::endl;
  24.     return output;
  25. }
  26.  
  27. int main() {
  28.  
  29.     setlocale(LC_ALL, "ru");
  30.  
  31.     std::vector<student> students{ {"Иван", "Иванов", 1, 33, 3.7}, {"Владимир", "Михайлов", 3, 39, 3.9}, {"Геннадий", "Петров", 2, 56, 4.2}, {"Ольга", "Григорьева", 5, 48, 4.0}, {"Елена", "Гришина", 4, 75, 4.9} };
  32.  
  33.     print(students);
  34.    
  35.     std::sort(students.begin(), students.end(), [](const student& left, const student& right) { return left.surname < right.surname; });
  36.  
  37.     print(students);
  38.  
  39.     std::sort(students.begin(), students.end(), [](const student& left, const student& right) { return left.rating > right.rating; });
  40.  
  41.     print(students);
  42.  
  43.     std::sort(students.begin(), students.end(), [](const student& left, const student& right) { return left.average_score > right.average_score; });
  44.  
  45.     print(students);
  46. }
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement