Удаление из множества в Rust
Удаление убирает значение, если оно было. Команда сообщает логическим признаком, нашелся ли элемент. Длина уменьшается на единицу, когда запись действительно исчезла. Остальные значения остаются на месте.
Создадим три текста, удалим один и проверим длину:
use std::collections::HashSet;
fn main() {
let mut set = HashSet::new();
set.insert("a".to_string());
set.insert("b".to_string());
set.insert("c".to_string());
set.remove(&"b".to_string());
println!("{}", set.len());
println!("{}", set.contains(&"b".to_string()));
}
Длина 2, для "b" признак ложный.
Значения "a" и "c" по-прежнему в наборе.
Если элемента уже нет, команда не ломает множество:
use std::collections::HashSet;
fn main() {
let mut set = HashSet::new();
set.insert("a".to_string());
set.remove(&"ghost".to_string());
println!("{}", set.len());
}
Дано множество:
let mut set = HashSet::new();
set.insert("a".to_string());
set.insert("b".to_string());
Удалите "a" и выведите длину и признак
для удаленного текста.
Дано множество:
let mut set = HashSet::new();
set.insert(1);
set.insert(2);
set.insert(3);
Удалите два значения и выведите оставшуюся длину.
Даны переменные:
let mut set = HashSet::new();
set.insert("only".to_string());
Выведите длину, удалите отсутствующий текст и снова выведите длину.