Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmVcRV 156 of 373 menu
◀ ▶

Удаление значения из вектора в Rust

Отдельной команды «убрать по значению» нет. Ищут номер в цикле: сравнивают очередной элемент с искомым числом и запоминают индекс, когда нашли совпадение.

После нахождения вызывают удаление по этому номеру. Если значений несколько, обычно убирают первое найденное или повторяют поиск с начала, пока список не станет нужным.

Найдем и уберем число 20 из готового набора:

let mut nums = vec![10, 20, 30]; let target = 20; for i in 0..nums.len() { if nums[i] == target { nums.remove(i); break; } } println!("{}", nums.len()); println!("{}", nums[1]);

Длина станет 2, на втором месте окажется 30. Перебор по номерам удобен, когда порядок обхода важен:

let mut nums = vec![5, 5, 5]; let cut = 5; for i in 0..nums.len() { if nums[i] == cut { nums.remove(i); break; } } println!("{}", nums.len());

Дан следующий вектор:

let mut nums = vec![4, 7, 4];

Уберите первое вхождение 4, найдя номер циклом. Выведите длину.

Дан следующий вектор:

let mut nums = vec![1, 2, 3, 2]; let bad = 2;

Найдите первый номер, где лежит bad, уберите элемент по этому номеру и выведите длину.

Скажите, зачем после нахождения номера часто прерывают цикл.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить