I am trying to populate a vector after initialising it with with_capacity() as the number of elements is known prior to its creation and it seems more efficient with it.
The following code does NOT populate with random values AT ALL: println!("{}", v.len()); outputs zero. 
use rand::Rng;
fn main() {
    const NUMBER_OF_RANDOM_NUMBERS: usize = 10;
    let mut v = Vec::with_capacity(NUMBER_OF_RANDOM_NUMBERS);
    for i in &mut v {
        *i += rand::thread_rng().gen_range(1, 2^32);
    }
    println!("{}", v.len());
}
My thinking is after let mut v = Vec::with_capacity(NUMBER_OF_RANDOM_NUMBERS) a brand new vector gets initialised with 10 zeros and then using rand::thread_rng().gen_range(1, 2^32) to insert, or should I say, add a random number to each zero.
Am I missing something here?
 
     
    