Suppose we want to store a vector in each element of an array. We must first initialize this array, which can be confusing in Rust.
When initializing arrays, each initial element must be a constant. In Rust we can use a const
empty array to satisfy this condition.
In this example program, we create an array of 10 vectors. Each vector is separate, and represents a separate region of memory.
for
-loop, we see the array has 10 elements and each element is a vector with 3 integers in it.fn main() { // Specify an empty vector as a constant. const EMPTY: Vec<i32> = vec![]; // Initialize the array. let mut array = [EMPTY; 10]; // Loop over the array vectors and push 3 numbers to each one. for array in array.iter_mut() { array.push(1); array.push(2); array.push(3); } // Print the vector data in the array. for array in array.iter() { println!("{:?}", array); } }[1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3] [1, 2, 3]
To create an array of vectors, we must initialize with a constant empty array. This allows the array creation expression to compile correctly.