Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0. enum class KindType: cat, dog,...
- 1. стурктура Animal
- - kind
- - name
- 2. структура Person:
- - surname
- - name
- - список домашних животных pets
- #include <string>
- enum class KindType {
- cat,
- dog,
- bear,
- elephant,
- };
- struct Animal {
- KindType kind;
- std::string name;
- };
- struct Person {
- std::string surname;
- std::string name;
- std::vector<Animal> pets;
- };
- void read(Animal& a) {
- std::string kind;
- std::cin >> kind >> a.name;
- if (kind == "cat") {
- a.kind = KindType::cat;
- } else if (kind == "dog") {
- a.kind = KindType::dog;
- } else if (kind == "bear") {
- a.kind = KindType::bear;
- } else if (kind == "elephant") {
- a.kind = KindType::elephant;
- }
- }
- bool operator < (const Person& p1, const Person& p2) {
- if (p1.surname != p2.surname) {
- return p1.surname < p2.surname;
- }
- return p1.name < p2.name;
- co}
- /*bool operator < (const Person& p1, const Person& p2) {
- return std::tie(p1.surname, p1.name) < std::tie(p2.surname, p2.name);
- }*/
- bool compare_by_pets(const Person& a, const Person& b) {
- return a.pets.size() > b.pets.size();
- }
- bool compare_by_pets2(const Person& a, const Person& b) {
- return a.pets.size() > b.pets.size();
- }
- int main() {
- Animal z;
- read(z);
- std::vector<Person> persons;
- sort(persons.begin(), persons.end());
- expression ? (if true) : (if false)
- int v = false ? 123 : 567;
- sort(persons.begin(), persons.end(), flag ? compare_by_pets : compare_by_pets2);
- if (flag)
- sort(persons.begin(), persons.end(), compare_by_pets);
- else
- sort(persons.begin(), persons.end(), compare_by_pets2);
- // 1. surname, name
- //
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement