Rust ベクタ(可変配列)を指定した位置の値を削除して最後の値で埋める

Rust ベクタ(可変配列)を指定した位置の値を削除して最後の値で埋める

Rustで、ベクタ(可変配列)を指定した位置の値を削除して最後の値で埋めるサンプルコードを記述してます。Rustのバージョンは1.66.0を使用してます。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • rustc 1.66.0

指定した位置の値を削除して最後の値で埋める

指定した位置の値を削除して最後の値で埋めるには、「swap_remove」を使用します。

ベクタ.swap_remove(位置);

位置は「0」から開始されます

実際に使用してみます。

fn main() {

    let mut v = vec![ 1, 2, 3, 4, 5 ];    

    println!("{:?}", v.swap_remove(1));
    // 2

    println!("{:?}", v);
    // [1, 5, 3, 4]

}

実行結果を見ると、削除されて最後の値で埋められていることが確認できます。

範囲を超える

範囲を超えている位置を指定すると、エラーが発生します。

fn main() {

    let mut v = vec![ 1, 2, 3, 4, 5 ];    

    println!("{:?}", v.swap_remove(5));
    // thread 'main' panicked at 'swap_remove index (is 5) should be < len (is 5)'

    println!("{:?}", v);    

}

実行結果