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

Метод drain

Метод drain удаляет указанный диапазон элементов из вектора и возвращает итератор, который позволяет получить доступ к удалённым элементам. Параметром метод принимает диапазон индексов элементов, которые нужно удалить. После вызова метода вектор уменьшается, а оставшиеся элементы сдвигаются.

Синтаксис

vec.drain(range)

Пример

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

fn main() { let mut vec = vec![1, 2, 3, 4, 5]; let drained: Vec<i32> = vec.drain(1..3).collect(); println!("{:?}", drained); println!("{:?}", vec); }

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

[2, 3] [1, 4, 5]

Пример

Давайте удалим все элементы из вектора vec!["a", "b", "c", "d", "e"], используя полный диапазон:

fn main() { let mut vec = vec!["a", "b", "c", "d", "e"]; let drained: Vec<&str> = vec.drain(..).collect(); println!("{:?}", drained); println!("{:?}", vec); }

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

["a", "b", "c", "d", "e"] []

Пример

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

fn main() { let mut vec = vec![1, 2, 3, 4, 5]; for val in vec.drain(2..) { println!("{}", val); } println!("{:?}", vec); }

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

3 4 5 [1, 2]

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

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