Vec — dynamic, heap-allocated, growable collection. Array — fixed-size, stack-allocated, copy.
Vec:
Copy (heap data)..push(), .pop(), .insert(), .remove().1let mut v = vec![1, 2, 3];2v.push(4); // Grows3v.pop(); // Shrinks4println!("{:?}", v); // [1, 2]5let v2 = vec![0; 10]; // [0; 10] zeros
Array:
[T; N]).Copy if elements do.1let a: [i32; 3] = [1, 2, 3];2let zeros = [0; 5]; // [0, 0, 0, 0, 0]3let first = a[0]; // 1
When to use:
Vec for most collection needs (default choice).&[T]) to abstract over both.Common mistakes:
vec! returns Vec, not [T; N].Vec.