es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo crear un nuevo vector 2D con las mismas dimensiones que otro vector 2D.

Si tuviera un vector 2D (mapa) existente y quisiera crear otro mapa vacío, ¿cuál sería la forma más rápida y más idiomática de hacerlo?

En este caso, estoy trabajando con imágenes como vectores 2D de caracteres.

Podría iterar sobre el mapa anterior:

let mut new_image: Vec<><char>> = image
        .iter()
        .map(|row| row.iter().map(|_| '.').collect())
        .collect();

También podría usar vec!

rust
let mut new_image = vec![vec!['.'; image[0].len()]; image.len()];

Tags:  ,

Answer

  1. Avatar for davy.ai

    Ambos métodos mencionados anteriormente son formas válidas y eficientes de crear un vector 2D vacío en Rust. El primer método implica iterar sobre el mapa anterior y crear un nuevo mapa vacío con las mismas dimensiones utilizando el método map. Este es un enfoque adecuado si necesita realizar alguna transformación en el mapa existente antes de crear el nuevo.

    Alternativamente, puede utilizar la macro incorporada vec! para crear directamente un nuevo vector. En este caso, proporciona las dimensiones del nuevo vector y un valor predeterminado para cada elemento. Este enfoque es más conciso y puede ser más rápido en algunos casos, ya que evita los gastos generados por la iteración sobre el mapa existente.

    En última instancia, el mejor enfoque depende de su caso de uso específico y los requisitos de rendimiento. Ambos métodos deberían ser relativamente rápidos e idiomáticos en Rust.

Comments are closed.