Разность множеств в Rust
Разность оставляет значения первого множества, которых нет во втором. Команда возвращает итератор: по нему идут циклом и печатают или считают элементы. Значения только из второго набора в результат не входят.
Вычтем второй набор из первого:
use std::collections::HashSet;
fn main() {
let mut a = HashSet::new();
a.insert("a".to_string());
a.insert("b".to_string());
a.insert("c".to_string());
let mut b = HashSet::new();
b.insert("b".to_string());
b.insert("d".to_string());
for n in a.difference(&b) {
println!("{}", n);
}
}
На экране "a" и "c". Общий текст "b"
отброшен, "d" из второго набора не входит,
потому что берут только элементы из первого.
Для чисел условие то же:
use std::collections::HashSet;
fn main() {
let mut left = HashSet::new();
left.insert(1);
left.insert(2);
left.insert(3);
let mut right = HashSet::new();
right.insert(2);
let mut count = 0;
for _ in left.difference(&right) {
count += 1;
}
println!("{}", count);
}
Даны переменные:
let mut a = HashSet::new();
a.insert("x".to_string());
a.insert("y".to_string());
let mut b = HashSet::new();
b.insert("y".to_string());
b.insert("z".to_string());
Соберите разность a без b в
only_a и выведите длину.
Даны переменные:
let mut a = HashSet::new();
a.insert(5);
a.insert(6);
let b = HashSet::new();
Соберите разность и выведите длину.
Скажите, совпадет ли разность a без
b с разностью b без a,
если в наборах разные значения.