Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Vectors in Rust Programming
Vectors in Rust are like re-sizable arrays. They are used to store objects that are of the same type and they are stored contiguously in memory
Like Slices, their size is not known at compile-time and can grow or shrink accordingly. It is denoted by Vec<T> in Rust
The data stored in the vector is allocated on the heap.
Example
In the below example, a vector named d is created using the Vec::new(); function that Rust provides.
fn main() {
let mut d: Vec = Vec::new();
d.push(10);
d.push(11);
println!("{:?}", d);
d.pop();
println!("{:?}", d);
}
We push the elements into a vector using the push() function and we remove the elements using the pop() function.
Output
[10, 11] [10]
Rust also provides us with another way to create a vector. Instead of using the Vec::new() function, we can make use of vec! Macro.
Example
fn main() {
let v = vec![1,2,3];
println!("{:?}",v);
}
Output
[1, 2, 3]
The above vector is not mutable and if we try to mutate some of its values, then we will get an error.
Example
fn main() {
let v = vec![1,2,3];
println!("{:?}",v);
v[0] = 99;
println!("{:?}",v);
}
Output
|
4 | let v = vec![1,2,3];
| - help: consider changing this to be mutable: `mut v`
5 | println!("{:?}",v);
6 | v[0] = 99;
| ^ cannot borrow as mutable
We can make it mutable by adding the mut keyword in front of the name of the vector we are defining.
Example
fn main() {
let mut v = vec![1,2,3];
println!("{:?}",v);
v[0] = 99;
println!("{:?}",v);
}
Output
[1, 2, 3] [99, 2, 3]
Lastly, it should be remembered that whenever the length of the vector exceeds the capacity, then the capacity of the vector will be increased automatically.