中級 › swap_remove は要素の順序を保証しない(remove との違い) › パターン1
swap_remove は要素の順序を保証しない(remove との違い)
Vecのswap_removeは指定位置の要素を削除し、その穴を最後の要素で埋めるため高速ですが、要素の順序が変わります。
1 fn main() { 2 let mut nums = vec![1, 2, 3, 4, 5]; 3 nums.___________(1); ^ 4 println!("{:?}", nums); 5 }
出力: [1, 5, 3, 4]
空欄を埋めて実行を通す
swap_removeは削除した穴を最後の要素で埋めるため順序が変わります。順序を保ちたい場合はremoveを使います。
次の問題