Advertisement
bogolyubskiyalexey

Untitled

Jan 22nd, 2021
700
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. 0. enum class KindType: cat, dog,...
  2. 1. стурктура Animal
  3.   - kind
  4.   - name
  5. 2. структура Person:
  6.  - surname
  7.  - name
  8.  - список домашних животных pets
  9.  
  10. #include <string>
  11.  
  12. enum class KindType {
  13.     cat,
  14.     dog,
  15.     bear,
  16.     elephant,
  17. };
  18.  
  19. struct Animal {
  20.     KindType kind;
  21.     std::string name;
  22. };
  23.  
  24. struct Person {
  25.     std::string surname;
  26.     std::string name;
  27.     std::vector<Animal> pets;    
  28. };
  29.  
  30. void read(Animal& a) {
  31.     std::string kind;
  32.     std::cin >> kind >> a.name;
  33.     if (kind == "cat") {
  34.         a.kind = KindType::cat;
  35.     } else if (kind == "dog") {
  36.         a.kind = KindType::dog;
  37.     } else if (kind == "bear") {
  38.         a.kind = KindType::bear;
  39.     } else if (kind == "elephant") {
  40.         a.kind = KindType::elephant;
  41.     }
  42. }
  43.  
  44. bool operator < (const Person& p1, const Person& p2) {
  45.     if (p1.surname != p2.surname) {
  46.         return p1.surname < p2.surname;
  47.     }
  48.     return p1.name < p2.name;
  49. co}
  50.  
  51. /*bool operator < (const Person& p1, const Person& p2) {
  52.     return std::tie(p1.surname, p1.name) < std::tie(p2.surname, p2.name);
  53. }*/
  54.  
  55. bool compare_by_pets(const Person& a, const Person& b) {
  56.     return a.pets.size() > b.pets.size();
  57. }
  58.  
  59. bool compare_by_pets2(const Person& a, const Person& b) {
  60.     return a.pets.size() > b.pets.size();
  61. }
  62.  
  63. int main() {
  64.     Animal z;
  65.     read(z);
  66.    
  67.     std::vector<Person> persons;
  68.     sort(persons.begin(), persons.end());
  69.    
  70.     expression ? (if true) : (if false)
  71.    
  72.     int v = false ? 123 : 567;
  73.     sort(persons.begin(), persons.end(), flag ? compare_by_pets : compare_by_pets2);
  74.     if (flag)
  75.         sort(persons.begin(), persons.end(), compare_by_pets);
  76.     else
  77.         sort(persons.begin(), persons.end(), compare_by_pets2);
  78.    
  79.    
  80.     // 1. surname, name
  81.     //
  82.    
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement