Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Класс forward_list: сортировка списка
Для сортировки списка предназначен метод sort()
. Прототипы метода:
void sort();
template<typename Compare> void sort(Compare comp);
Первый прототип производит сортировку по умолчанию (в пользовательских классах должен быть перегружен оператор <
, иначе получите ошибку при компиляции):
std::forward_list<int> arr = {4, 5, 3, 2, 6, 1};
arr.sort(); // Сортировка в прямом порядке
for (int &el : arr) std::cout << el << ' ';
std::cout << std::endl; // 1 2 3 4 5 6
Второй прототип позволяет указать пользовательский способ сравнения элементов. Функтор comp
принимает два параметра и должен возвращать значение true
, если первое значение меньше второго, и false
— в противном случае. Отсортируем список в прямом и обратном порядке:
std::forward_list<int> arr = {4, 5, 3, 2, 6, 1};
// Сортировка в прямом порядке
arr.sort( [](int &a, int &b) {return a < b;} );
for (int &el : arr) std::cout << el << ' ';
std::cout << std::endl; // 1 2 3 4 5 6
// Сортировка в обратном порядке
arr.sort( [](int &a, int &b) {return a > b;} );
for (int &el : arr) std::cout << el << ' ';
std::cout << std::endl; // 6 5 4 3 2 1
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов