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

Метод retain

Метод retain проходится по всем элементам вектора и оставляет только те, для которых замыкание-предикат возвращает true. Все элементы, для которых предикат вернул false, удаляются из вектора. Параметром метод принимает замыкание, которое получает ссылку на текущий элемент и возвращает bool. Порядок оставшихся элементов сохраняется.

Синтаксис

vec.retain(|x| condition)

Пример

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

fn main() { let mut vec = vec![1, 2, 3, 4, 5]; vec.retain(|x| x % 2 == 0); println!("{:?}", vec); }

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

[2, 4]

Пример

Давайте оставим в векторе только числа, большие трёх:

fn main() { let mut vec = vec![1, 2, 3, 4, 5]; vec.retain(|x| *x > 3); println!("{:?}", vec); }

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

[4, 5]

Пример

Давайте оставим в векторе только строки, начинающиеся с буквы "a":

fn main() { let mut vec = vec!["abcde", "xyz", "apple", "banana"]; vec.retain(|x| x.starts_with("a")); println!("{:?}", vec); }

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

["abcde", "apple"]

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

  • метод remove,
    который удаляет элемент по указанному индексу
  • метод truncate,
    который обрезает вектор до указанной длины
  • метод drain,
    который удаляет диапазон элементов из вектора
  • метод clear,
    который удаляет все элементы вектора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить