РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
324 of 815 menu

Функция ranges::sort

Функция ranges::sort сортирует элементы диапазона. В первом параметре мы передаем диапазон, который нужно отсортировать, а во втором необязательном параметре - компаратор, задающий правило сортировки. Также можно передать проекцию - функцию, применяемую к каждому элементу перед сравнением.

По умолчанию элементы сортируются по возрастанию с помощью оператора <. Функция изменяет исходный диапазон и не возвращает результат.

Синтаксис

ranges::sort(range, [comp], [proj])

Пример

Давайте отсортируем вектор из чисел по возрастанию:

#include <iostream> #include <vector> #include <algorithm> using namespace std; using namespace std::ranges; int main() { vector<int> res = {5, 2, 4, 1, 3}; sort(res); for (int num : res) { cout << num << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте отсортируем вектор из чисел по убыванию, передав компаратор:

#include <iostream> #include <vector> #include <algorithm> using namespace std; using namespace std::ranges; int main() { vector<int> res = {5, 2, 4, 1, 3}; sort(res, greater<int>()); for (int num : res) { cout << num << " "; } cout << endl; return 0; }

Результат выполнения кода:

5 4 3 2 1

Пример

Давайте отсортируем вектор из строк по длине, используя проекцию:

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; using namespace std::ranges; int main() { vector<string> res = {"abcde", "ab", "abc", "a", "abcd"}; sort(res, {}, &string::length); for (const string& str : res) { cout << str << " "; } cout << endl; return 0; }

Результат выполнения кода:

"a" "ab" "abc" "abcd" "abcde"

Смотрите также

  • функция ranges::find,
    которая ищет элемент в диапазоне
  • функция ranges::count,
    которая считает элементы в диапазоне
  • функция ranges::copy,
    которая копирует элементы диапазона
  • функция ranges::for_each,
    которая применяет функцию к элементам диапазона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить