Vector: collection in Rust
Vector can be used to storing lists of values in Rust. It's one of the collection that included in standard library in Rust
Vector can be used to storing lists of values in Rust. It’s one of the collection that included in standard library in Rust.
Example usage: lines of text in a file or prices of items in a shopping cart.
What’s the different between vector and array
Vector is most similar to array in Rust, the different is array has a fixed length, while vector’s can grow!
How to create a Vector
This is how to create an empty vector in Rust
let v: Vec<i32> = Vec::new();
Vector always has a certain data type that can be written explicitly in Vector
In real world, we can write directly Vector like this
let v = vec![1, 2, 3];
*the type annotation isn’t necessary
How to read a Vector
To read a vector, we can use index or get method.
let v = vec![1, 2, 3, 4, 5];
let third: &i32 = &v[2];
println!("The third element is {}", third);
match v.get(2) {
Some(third) => println!("The third element is {}", third),
None => println!("There is no third element."),
}
- Use &Vector[index]
- Use Vector.get(index)
When the get
method is passed an index that is outside the vector, it returns None
without panicking. But using [] will return an error (crash).
Iterating a Vector
We can iterate through Vector
let v = vec![100, 32, 57];
for i in &v {
println!("{}", i);
}
Iterate and mutate a vector
let mut v = vec![100, 32, 57];
for i in &mut v {
*i += 50;
}
How to update a Vector
We can use push method to add a new vector
let mut v = Vec::new();
v.push(5);
v.push(6);
v.push(7);
v.push(8);
Different type of values in Vector
To implement different type of values in Vector, we need to use enum
fn main() {
enum SpreadsheetCell {
Int(i32),
Float(f64),
Text(String),
}
let row = vec![
SpreadsheetCell::Int(3),
SpreadsheetCell::Text(String::from("blue")),
SpreadsheetCell::Float(10.12),
];
}
Read more at Vector Documentation