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

Метод sort_by

Метод sort_by сортирует элементы вектора в порядке, определяемом функцией сравнения. Параметром метод принимает замыкание, которое получает два элемента и возвращает Ordering. Сортировка происходит на месте и изменяет исходный вектор.

Синтаксис

vec.sort_by(|a, b| a.cmp(b))

Пример

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

fn main() { let mut vec = vec![3, 1, 4, 2, 5]; vec.sort_by(|a, b| a.cmp(b)); println!("{:?}", vec); }

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

[1, 2, 3, 4, 5]

Пример

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

fn main() { let mut vec = vec![3, 1, 4, 2, 5]; vec.sort_by(|a, b| b.cmp(a)); println!("{:?}", vec); }

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

[5, 4, 3, 2, 1]

Пример

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

fn main() { let mut vec = vec!["abcde", "a", "abc", "ab", "abcd"]; vec.sort_by(|a, b| a.len().cmp(&b.len())); println!("{:?}", vec); }

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

["a", "ab", "abc", "abcd", "abcde"]

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

  • метод sort,
    который сортирует вектор по возрастанию
  • метод sort_by_key,
    который сортирует вектор по ключу
  • метод sort_unstable,
    который выполняет нестабильную сортировку
  • метод reverse,
    который обращает порядок элементов вектора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить