Для сортировки массива объектов типа Person “по возрастанию” необходимо реализовать алгоритм сравнения (компаратор). Укажите верные варианты реализации:
struct Person
{
std::string name;
unsigned age;
};
cpp
bool compareByAge(const Person& p1, const Person& p2) {
return p1.age < p2.age;
}
// Использование:
std::sort(persons.begin(), persons.end(), compareByAge);
2. Определение оператора меньше для класса Person:
cpp
struct Person {
std::string name;
unsigned age;
bool operator<(const Person& other) const {
return age < other.age;
}
};
// Использование:
std::sort(persons.begin(), persons.end());
3. Использование лямбда-функции:
cpp
std::sort(persons.begin(), persons.end(), [](const Person& p1, const Person& p2) {
return p1.age < p2.age;
});
4. Использование функционального объекта (функтора):
cpp
struct CompareByAge {
bool operator()(const Person& p1, const Person& p2) const {
return p1.age < p2.age;
}
};
// Использование:
std::sort(persons.begin(), persons.end(), CompareByAge());
Все эти варианты позволят отсортировать массив объектов типа Person по возрастанию. Они используют оператор `<` для сравнения объектов или функции/функтора, которая задает нужное сравнение по полю `age`.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет