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

Функция min_by_key

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

Функция возвращает None, если итератор пуст, и Some с минимальным элементом в противном случае.

Синтаксис

iter.min_by_key(|item| key)

Пример

Давайте найдём строку с наименьшей длиной в векторе ["abcde", "ab", "abcd", "a"], используя в качестве ключа длину строки:

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

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

Some("a")

Пример

Давайте найдём минимальное число по модулю в векторе [-5, 3, -1, 4], используя в качестве ключа абсолютное значение:

fn main() { let vec = vec![-5, 3, -1, 4]; let res = vec.iter().min_by_key(|n| n.abs()); println!("{:?}", res); }

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

Some(-1)

Пример

Давайте найдём кортеж с наименьшим вторым элементом в векторе [(1, 5), (2, 3), (3, 4)]:

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

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

Some((2, 3))

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

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