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

Метод max_by

Метод max_by возвращает максимальный элемент итератора. В отличие от метода max, который сравнивает элементы напрямую, max_by принимает параметром функцию сравнения, которая получает два элемента и возвращает значение типа Ordering. Метод возвращает Some с максимальным элементом или None, если итератор пуст.

Синтаксис

iter.max_by(|a, b| a.cmp(b))

Пример

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

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

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

Some(9)

Пример

Давайте найдём максимальный элемент вектора vec!["abcde", "12345", "xyz"] по длине строки:

fn main() { let vec = vec!["abcde", "12345", "xyz"]; let res = vec.iter().max_by(|a, b| a.len().cmp(&b.len())); println!("{:?}", res); }

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

Some("abcde")

Пример

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

fn main() { let vec: Vec<i32> = vec![]; let res = vec.iter().max_by(|a, b| a.cmp(b)); println!("{:?}", res); }

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

None

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

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