Rust ベクタ(可変配列)の前方から指定したインデックスの要素を先頭に変更する

Rust ベクタ(可変配列)の前方から指定したインデックスの要素を先頭に変更する

Rustで、ベクタ(可変配列)の前方から指定したインデックスの要素を先頭に変更するサンプルコードを記述してます。「rotate_left」で可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

前方から指定したインデックスの要素を先頭に変更

前方から指定したインデックスの要素を先頭に変更するには、「rotate_left」を使用します。

ベクタ.rotate_left(インデックス番号);

実際に使用してみます。

fn main() {

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

    v.rotate_left(1);

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

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

    v.rotate_left(2);

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

}

実行結果を見ると、変更されていることが確認できます。

最大値を超える

最大値を超えるとエラーとなります。

fn main() {

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

    v.rotate_left(6);
    // thread 'main' panicked at 'assertion failed: mid <= self.len()'

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

}

実行結果