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

Метод sort_by_key

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

Синтаксис

vec.sort_by_key(key_fn)

Пример

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

fn main() { let mut vec = vec![3, -1, 2, -5, 4]; vec.sort_by_key(|x| x.abs()); println!("{:?}", vec); }

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

[-1, 2, 3, 4, -5]

Пример

Давайте отсортируем вектор строк по их длине с помощью метода sort_by_key:

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

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

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

Пример

Давайте отсортируем вектор кортежей по второму элементу с помощью метода sort_by_key:

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

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

[(3, 1), (5, 2), (2, 3), (4, 4), (1, 5)]

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

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