Вхождение во множество в Rust
Вхождение спрашивают по ссылке на значение. Команда возвращает логический признак: истина, если элемент уже в наборе, и ложь, если его нет. Ссылку берут так же, как при чтении из вектора без копирования всего значения.
Проверим значение, которое есть, и которого нет:
use std::collections::HashSet;
fn main() {
let mut set = HashSet::new();
set.insert("a".to_string());
println!("{}", set.contains(&"a".to_string()));
println!("{}", set.contains(&"z".to_string()));
}
Для "a" будет true, для "z"
false. В условии часто используют только
этот признак, без отдельной переменной для
результата.
Для целых ссылку пишут перед числом:
use std::collections::HashSet;
fn main() {
let mut set = HashSet::new();
set.insert(10);
if set.contains(&10) {
println!("yes");
}
}
Дано множество:
let mut set = HashSet::new();
set.insert("k".to_string());
Узнайте, есть ли "k" и "m",
и выведите оба признака.
Даны переменные:
let mut set = HashSet::new();
set.insert(0);
Проверьте 0 и 1. Выведите оба
результата.
Создайте набор с одним элементом. Выведите признак для существующего и для отсутствующего значения.