中級 › swap_remove は要素の順序を保証しない(remove との違い) › パターン3
swap_remove は要素の順序を保証しない(remove との違い)
Vecのswap_removeは指定位置の要素を削除し、その穴を最後の要素で埋めるため高速ですが、要素の順序が変わります。
1 fn main() { 2 let mut ranking = vec!["a", "b", "c", "d"]; 3 ranking.___________(1); ^ 4 println!("{:?}", ranking); 5 }
出力: ["a", "d", "c"]
空欄を埋めて実行を通す
ランキングのように順序に意味があるデータでは、swap_removeを使うと結果が壊れてしまいます。
次の問題