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