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