typestar

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

  1. push_back y pop_front lo vuelven una cola.
  2. push_front lo vuelve un deque, o una pila de deshacer.
  3. Sacar del frente antes de insertar mantiene una ventana de tamaño fijo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 8 de 8 en Colecciones; paso 37 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →