Vector es un módulo en Rust que proporciona el espacio contenedor para almacenar valores. Es un tipo de array redimensionable contigua, con contenido asignado al almacenamiento dinámico. Se denota por Vec<T>. Los vectores en Rust tienen indexación O(1) y las operaciones push y pop en vector también toman complejidad O(1). Los vectores aseguran que nunca asignan más de isize::MAX bytes .
Una forma simple de explicar un vector es que es un contenedor que almacena los valores como una array, pero tiene más ventajas que una estructura de datos de array. Se puede aumentar el tamaño dinámicamente durante el tiempo de ejecución. Lo proporciona la biblioteca estándar que puede almacenar el valor de cualquier tipo de datos. Los datos del vector se asignan en el montón. Su longitud define el número de elementos presentes en el vector. Su capacidad define el espacio asignado real en el montón de este vector que tiene la forma de 2^n.
Sintaxis:
Vec<T> Where T denotes type of data.
Creando un vector en Rust:
Para crear Vector, simplemente siga los métodos que se enumeran a continuación.
1. Usando el método Vec::new():
let v : Vec<i64> = Vec::new();
Aquí v es el vector inicializado que contendrá el tipo de datos entero de 64 bits. Se inicializa con la ayuda del método Vec::new().
Rust
fn main() { let v : Vec<i64> = Vec::new(); // printing the size of vector println!("{ }",v.len()); }
Producción:
2. Usando macro en Rust:
let v = vec!['G','E','E','K','S'];
Aquí este vector creado usando la macro vec!. Y almacena el valor que proporcionamos aquí, que es de tipo char.
Rust
fn main() { let v = vec!['G','E','E','K','S']; // printing the size of vector println!("{ }",v.len()); }
Producción:
Acceso a un vector:
Los métodos enumerados a continuación se pueden usar para acceder a un vector en la programación de Rust.
1. Usando el operador de subíndice:
Similar al concepto de indexación en otros idiomas, los operadores de subíndices se pueden usar para acceder directamente a los valores en un vector a través de su índice. es importante tener en cuenta que la indexación comienza con 0.
let v = vec!['G','E','E','K;','S']; //here index is the integer non negative value which is smaller than the size of the vector. char ch = v [ index ];
Ejemplo:
Rust
fn main() { let v = vec!['G','E','E','K','S']; // here index is the non negative value which is smaller than the size of the vector let index: usize = 3; //getting value at given index value let ch: char = v[index]; print!("{ }\n",ch); }
Producción:
2. Usando el método get()
La segunda forma de acceder a los elementos del vector es usar el método get(index) con el índice de un vector como argumento. Devuelve el valor de tipo Option<&t>.
let v = vec!['G','E','E','K;','S']; //here index is the integer non negative value which is smaller than the size of the vector. let value: Option<&char> = v.get(index);
Ejemplo:
Rust
// Method to print the get value fn value(n:Option<&char>) { match n { Some(n)=>println!("Element of vector {}",n), None=>println!("None"), } } fn main() { let v = vec!['G','E','E','K','S']; // here index is the non negative value which is // smaller than the size of the vector let index: usize = 3; // getting value at given index value let ch: Option<&char> = v.get(index); value(ch); }
Producción:
3. Iterando sobre el vector:
Para acceder al vector también podemos iterar a través de un vector como lo hacemos en otros lenguajes de programación. Podemos usar for loop para iterar a través de un vector.
let v = vec!['G','E','E','K;','S']; print!("Vector elements :"); for i in v { // iterating through i on the vector print!("{} ",i); }
Ejemplo:
Rust
fn main() { let v = vec!['G','E','E','K','S']; print!("Vector elements : "); //loop to iterate elements in vector for i in v { // iterating through i on the vector print!("{} ",i); } print!("\n",); }
Producción:
Actualización de un vector:
Después de la creación del vector, podemos actualizar el vector usando el método push(). Empuja el nuevo elemento si el tamaño del vector es menor que la capacidad del vector o si el tamaño del vector es mayor que la capacidad del vector, entonces asigna el doble de espacio del tamaño del vector, luego copia todos los elementos en el vector recién asignado y libera la memoria de el vector anterior.
Empuja el elemento al final del vector.
let mut v : Vec<char> = Vec::new(); vec.push('A'); vec.push('B'); vec.push('C'); // now vector size will be 3
Ejemplo:
Rust
fn main() { let mut v : Vec<char> = Vec::new(); v.push('A'); v.push('B'); v.push('C'); // now vector elements will be // loop to iterate elements in vector for i in v { // iterating through i on the vector print!("{} ",i); } print!("\n"); }
Producción:
Publicación traducida automáticamente
Artículo escrito por aditya32123 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA