Avatar ·

¿Hay colecciones tipo queue y stack en Rust?

¡Hola a todos! Empecé a estudiar Rust recientemente y tengo una pregunta sobre estructuras de datos. En otros lenguajes (por ejemplo, en C++ o Python) hay queues y stacks incorporados. Intenté encontrar algo similar en la standard library de Rust, pero aún no lo he resuelto. Esto es lo que probé: quiero escribir un programa que procese tareas en el orden en que llegan (FIFO). Creé un vector y usé `push` para agregar, y para extraer el primer elemento intenté usar `remove(0)`, pero el compilador se queja del rendimiento. Aquí hay un ejemplo: ```rust fn main() { let mut queue: Vec = Vec::new(); queue.push(1); queue.push(2); queue.push(3); // Intento extraer el primer elemento let first = queue.remove(0); println!("{}", first); } ``` Esto funciona, pero escuché que `remove(0)` para `Vec` es O(n), porque todos los elementos se desplazan. Para un stack usaría `pop()`, que funciona en O(1), pero eso es LIFO. Y yo necesito FIFO. Díganme, ¿hay en