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