Vec<T> — owned, heap-allocated. [T] — borrowed slice.
Vec<T>:
[T]:
1// Vec<T>2let v: Vec<i32> = vec![1, 2, 3];3v.push(4); // Can modify45// [T] — slice6let slice: &[i32] = &v[1..3];7println!("{:?}", slice); // [2, 3]
Conversion:
1let v = vec![1, 2, 3];2let slice: &[i32] = &v; // Vec -> slice3let vec: Vec<i32> = slice.to_vec(); // slice -> Vec
Key: Vec for owned, slice for borrowed.