use std::env; fn main() { let mut args = env::args().skip(1).flat_map(|num| num.parse()); let rows = args.next().expect("Expected number of rows as first argument"); let cols = args.next().expect("Expected number of columns as second argument"); assert!(rows != 0 && cols != 0); // Creates a vector of vectors with all elements initialized to 0. let mut v = init_vec(rows, || init_vec(cols, || 0)); v[0][0] = 1; println!("{}", v[0][0]); } // Returns a dynamically-allocated array of size `n`, // initialized with the values computed by `f` fn init_vec(n: usize, f: F) -> Vec where F: Fn() -> T { let mut vec = Vec::with_capacity(n); for _ in 0..n { vec.push(f()); } vec }