VecDeque en Rust
Un buffer circular: push y pop en ambos extremos en tiempo constante.
use std::collections::VecDeque;
fn main() {
let mut queue: VecDeque<&str> = VecDeque::new();
queue.push_back("basics");
queue.push_back("errors");
queue.push_front("welcome");
println!("{:?}", queue.pop_front());
let mut window: VecDeque<i32> = VecDeque::with_capacity(3);
for n in 1..=5 {
if window.len() == 3 {
window.pop_front();
}
window.push_back(n);
}
println!("{:?}", window);
}
Cómo funciona
push_backypop_frontlo vuelven una cola.push_frontlo vuelve un deque, o una pila de deshacer.- Sacar del frente antes de insertar mantiene una ventana de tamaño fijo.
Palabras clave y builtins usados aquí
fnfori32ifinletmutstruse
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 387
- Tokens
- 126
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 84 segundos.
Paso 8 de 8 en Colecciones; paso 37 de 39 en Fundamentos del lenguaje.