Cómo convertir un vector en HashSet en Rust: guía completa
¡Hola a todos! Empecé a aprender Rust recientemente y me encontré con un problema. Tengo un vector con números y quiero obtener un HashSet a partir de él para eliminar duplicados y verificar rápidamente la presencia de elementos. En otros lenguajes, como Python, esto se hace en una línea: `set(my_list)`. Pero en Rust no puedo entender cómo hacerlo correctamente.
Aquí está mi código:
```rust
let numbers = vec![1, 2, 3, 2, 1, 4, 5];
// Quiero obtener un HashSet a partir de este vector
let unique_numbers: HashSet = numbers.???; // ¿Qué escribir aquí?
```
Intenté usar `numbers.into_iter().collect()`, pero el compilador se queja de que no puede inferir el tipo. Intenté especificar explícitamente `HashSet::from_iter(numbers)`, pero tampoco funcionó – dice que el trait `FromIterator` no está implementado. También escuché sobre el método `drain()`, pero no estoy seguro de que sea lo que necesito.
Por favor, indíquenme cómo crear correcta y eficientemente un HashSet a partir de un vector. ¿Necesito importar algún trait adicional? ¿Y qué hacer si el vector es muy grande?