中級 › swap_remove は要素の順序を保証しない(remove との違い) › パターン5
swap_remove は要素の順序を保証しない(remove との違い)
Vecのswap_removeは指定位置の要素を削除し、その穴を最後の要素で埋めるため高速ですが、要素の順序が変わります。
1 fn main() { 2 let mut playlist = vec!["song1", "song2", "song3"]; 3 playlist.___________(0); ^ 4 println!("{:?}", playlist); 5 }
出力: ["song3", "song2"]
空欄を埋めて実行を通す
順序を保つ必要がある場面では、多少コストがかかってもremoveを選ぶ必要があります。
次の問題