Множество в вектор в 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());
let mut list = Vec::new();
for v in &set {
list.push(v.clone());
}
println!("{}", list.len());
}
Длина вектора 3 совпадает с длиной множества.
Порядок в векторе может не совпадать с порядком
дописки в набор.
Для целых копируют число из ссылки звездочкой:
use std::collections::HashSet;
fn main() {
let mut set = HashSet::new();
set.insert(1);
set.insert(2);
let mut vals = Vec::new();
for v in &set {
vals.push(*v);
}
println!("{}", vals.len());
}
Дано множество:
let mut set = HashSet::new();
set.insert("p".to_string());
set.insert("q".to_string());
Соберите вектор в list и выведите
его длину.
Дано множество:
let mut set = HashSet::new();
set.insert(10);
set.insert(20);
set.insert(30);
Обойдите set и выведите каждое число
отдельной строкой.
Даны переменные:
let mut set = HashSet::new();
Соберите вектор ключей и скажите, какая у него длина.