vector rust

vector - ¿Cómo obtengo una porción de un Vec<T> en Rust?



(2)

No puedo encontrar en la documentación de Vec<T> cómo recuperar un sector de un rango específico.

¿Hay algo como esto en la biblioteca estándar:

let a = vec![1, 2, 3, 4]; let suba = a.subvector(0, 2); // Contains [1, 2];



Si desea convertir todo el Vec en una porción, puede usar deref coercion :

fn main() { let a = vec![1, 2, 3, 4, 5]; let b: &[i32] = &a; println!("{:?}", b); }

Esta coerción se aplica automáticamente al llamar a una función:

fn print_it(b: &[i32]) { println!("{:?}", b); } fn main() { let a = vec![1, 2, 3, 4, 5]; print_it(&a); }

También puedes llamar a Vec::as_slice , pero es un poco menos común:

fn main() { let a = vec![1, 2, 3, 4, 5]; let b = a.as_slice(); println!("{:?}", b); }

Ver también:

  • ¿Por qué no se recomienda aceptar una referencia a un String (& String), Vec (& Vec) o Box (& Box) como argumento de función?