Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2021, 16:21   #1
dsmkhot
Новичок
Джуниор
 
Регистрация: 14.11.2021
Сообщений: 1
По умолчанию Добавьте в функцию необязательный третий параметр reverse

Добавьте в функцию необязательный третий параметр reverse. Если туда будет передано true, объекты нужно отсортировать в обратном порядке.
Не используйте функцию reverse из библиотеки <algorithm>.
Здесь будет достаточно любого решения, даже с небольшим копированием кода. Например, можно начать функцию с if (reverse) и в каждой ветке отсортировать с нужным компаратором.
Пример
Вывод
Мурка Белка Георгий Рюрик
Рюрик Мурка Георгий Белка
Белка Рюрик Георгий Мурка
[CODE]
[B][B]#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

struct Animal {
string name;
int age;
double weight;
};

template <typename Container, typename KeyMapper>
void SortBy(Container& container, KeyMapper key_mapper) {
// теперь можно сортировать контейнер
// с компаратором key_mapper(lhs) < key_mapper(rhs)
sort(container.begin(), container.end(),
[key_mapper](const auto& lhs, const auto& rhs)
{
return key_mapper(lhs) < key_mapper(rhs);
});
}

void PrintNames(const vector<Animal>& animals) {
for (const Animal& animal : animals) {
cout << animal.name << ' ';
}
cout << endl;
}

int main() {
vector<Animal> animals = {
{"Мурка"s, 10, 5},
{"Белка"s, 5, 1.5},
{"Георгий"s, 2, 4.5},
{"Рюрик"s, 12, 3.1},
};

PrintNames(animals);

SortBy(animals, [](const Animal& animal) { return animal.name; }, true);
PrintNames(animals);

SortBy(animals, [](const Animal& animal) { return animal.weight; });
PrintNames(animals);

return 0;
}
[CODE]
dsmkhot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MySQL необязательный параметр функции dbalor SQL, базы данных 5 22.08.2018 12:55
Необязательный параметр - массив _-Re@l-_ Общие вопросы Delphi 11 17.03.2011 09:30
Необязательный параметр Boolean _-Re@l-_ Общие вопросы Delphi 4 19.06.2010 19:01
Необязательный параметр TBitmap _-Re@l-_ Общие вопросы Delphi 1 17.06.2010 12:44
[Делфи] Ini файл.ReadInteger (за что отвечает третий параметр?) zotox Помощь студентам 2 20.07.2009 09:48