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

Метод dedup_by_key

Метод dedup_by_key удаляет из вектора подряд идущие элементы, для которых переданная функция возвращает одинаковый ключ. Параметром метод принимает функцию, которая берёт ссылку на элемент и возвращает ключ для сравнения. Удаляются только соседние дубликаты, поэтому перед вызовом вектор обычно сортируют.

Синтаксис

vec.dedup_by_key(|element| key)

Пример

Давайте удалим подряд идущие элементы вектора, у которых совпадает остаток от деления на 2:

fn main() { let mut vec = vec![1, 3, 4, 6, 8, 9]; vec.dedup_by_key(|x| x % 2); println!("{:?}", vec); }

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

[1, 4, 9]

Пример

Давайте удалим подряд идущие элементы вектора, у которых совпадает первый символ строки:

fn main() { let mut vec = vec!["abcde", "apple", "banana", "avocado"]; vec.dedup_by_key(|s| s.chars().next().unwrap()); println!("{:?}", vec); }

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

["abcde", "banana", "avocado"]

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

  • метод dedup,
    который удаляет подряд идущие одинаковые элементы
  • метод dedup_by,
    который удаляет подряд идущие элементы по условию
  • метод sort,
    который сортирует элементы вектора
  • метод retain,
    который оставляет только элементы, удовлетворяющие условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить