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

Метод max_by_key

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

Синтаксис

iter.max_by_key(key_fn)

Пример

Давайте найдём элемент вектора с максимальной длиной строки:

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

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

Some("abcd")

Пример

Давайте найдём число с максимальным остатком от деления на 3:

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

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

Some(2)

Пример

Давайте применим метод к пустому вектору:

fn main() { let vec: Vec<i32> = vec![]; let res = vec.iter().max_by_key(|x| *x); println!("{:?}", res); }

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

None

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

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