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

Функция max_by_key

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

Если несколько элементов имеют одинаковый максимальный ключ, функция вернёт последний из них. Метод возвращает Option: Some с максимальным элементом или None, если итератор пуст.

Синтаксис

iter.max_by_key(key_fn)

где key_fn - замыкание, принимающее элемент и возвращающее ключ, по которому происходит сравнение.

Пример

Давайте найдём максимальный элемент вектора vec![1, 2, 3, 4, 5] по ключу, равному самому элементу:

fn main() { let res = vec![1, 2, 3, 4, 5].iter().max_by_key(|x| **x); println!("{:?}", res); }

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

Some(5)

Пример

Давайте найдём строку с максимальной длиной в векторе vec!["abcde", "ab", "abc"]:

fn main() { let res = vec!["abcde", "ab", "abc"].iter().max_by_key(|s| s.len()); println!("{:?}", res); }

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

Some("abcde")

Пример

Давайте найдём элемент с максимальным ключом в векторе пар vec![(1, "a"), (3, "b"), (2, "c")], где ключом является первый элемент пары:

fn main() { let res = vec![(1, "a"), (3, "b"), (2, "c")] .iter() .max_by_key(|pair| pair.0); println!("{:?}", res); }

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

Some((3, "b"))

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

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