HashSet en Rust
Pertenencia y álgebra de conjuntos, sin valores duplicados por construcción.
use std::collections::HashSet;
fn main() {
let a: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();
let b: HashSet<i32> = [3, 4, 5].into_iter().collect();
let mut both: Vec<&i32> = a.intersection(&b).collect();
both.sort();
println!("{:?}", both);
let mut only_a: Vec<&i32> = a.difference(&b).collect();
only_a.sort();
println!("{:?}", only_a);
let mut seen = HashSet::new();
println!("{} {}", seen.insert("fig"), seen.insert("fig"));
}
Cómo funciona
insertdevuelve false cuando el valor ya estaba.intersectionydifferenceproducen iteradores, no conjuntos.collectarma un conjunto directo desde un iterador.
Palabras clave y builtins usados aquí
Vecfni32letmutuse
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 441
- Tokens
- 172
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 115 segundos.
Paso 6 de 8 en Colecciones; paso 35 de 39 en Fundamentos del lenguaje.