|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2021, 16:21 | #1 |
Новичок
Джуниор
Регистрация: 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] |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |