Avatar ·

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?