retain — keep matching. remove — remove by index.
retain:
remove:
1let mut v = vec![1, 2, 3, 4, 5];2v.retain(|&x| x % 2 == 0);3// v: [2, 4]45let mut v = vec![1, 2, 3, 4, 5];6let removed = v.remove(2);7// removed: 3, v: [1, 2, 4, 5]
Key: retain for filtering, remove for index-based.