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

Функция min_by

Функция min_by возвращает минимальный элемент в итераторе, используя для сравнения пользовательскую функцию-компаратор. Она возвращает Option, содержащий минимальный элемент, или None, если итератор пуст. Параметром функция принимает замыкание, которое получает два элемента и возвращает значение типа Ordering.

Синтаксис

iter.min_by(compare)

Пример

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

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

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

Some(1)

Пример

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

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

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

Some("ab")

Пример

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

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

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

None

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

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