Равенство множеств в Rust
Два множества равны, если в них одни и те же значения, порядок не важен. Для сравнения используют оператор равенства между двумя переменными набора. Разная длина уже означает неравенство, но при одинаковой длине сравнение все равно проверяет состав.
Сравним два одинаковых набора и два разных:
use std::collections::HashSet;
fn main() {
let mut a = HashSet::new();
a.insert("a".to_string());
a.insert("b".to_string());
let mut b = HashSet::new();
b.insert("b".to_string());
b.insert("a".to_string());
println!("{}", a == b);
let mut c = HashSet::new();
c.insert("a".to_string());
println!("{}", a == c);
}
Первый результат true, второй false.
Порядок дописки в наборы на равенство не влияет.
Пустые множества равны друг другу:
use std::collections::HashSet;
fn main() {
let a: HashSet<i32> = HashSet::new();
let b: HashSet<i32> = HashSet::new();
println!("{}", a == b);
}
Даны переменные:
let mut a = HashSet::new();
a.insert(1);
a.insert(2);
let mut b = HashSet::new();
b.insert(2);
b.insert(1);
Проверьте равенство в same и выведите
same.
Даны переменные:
let mut a = HashSet::new();
a.insert("a".to_string());
a.insert("b".to_string());
let mut b = HashSet::new();
b.insert("a".to_string());
b.insert("b".to_string());
b.insert("c".to_string());
Скажите, равны ли наборы, если смотреть только на длину.
Даны переменные:
let mut a = HashSet::new();
a.insert(1);
a.insert(2);
let mut b = HashSet::new();
b.insert(1);
b.insert(3);
Сравните наборы и выведите результат.