¿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