Rust ベクタ(可変配列)の値で条件を満たす最後の値の位置を取得する

Rust ベクタ(可変配列)の値で条件を満たす最後の値の位置を取得する

Rustで、ベクタ(可変配列)の値で条件を満たす最後の値の位置を取得するサンプルコードを記述してます。「iter().rposition」で可能です。Rustのバージョンは1.66.0を使用してます。

環境

  • OS windows11 home
  • rustc 1.66.0

条件を満たす最後の値の位置を取得

条件を満たす最後の値の位置を取得するには、「iter().rposition」を使用します。

ベクタ.iter().rposition(|&引数| 条件);

実際に使用してみます。

fn main() {

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

    println!("{:?}", v.iter().rposition(|&x| x == 2 )); // Some(3)

    println!("{:?}", v.iter().rposition(|&x| x > 2)); // Some(4)

    println!("{:?}", v.iter().rposition(|&x| x > 5)); // None

}

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

空の配列

空の配列に使用すると、全て「None」が返ります。

fn main() {

    let v = vec![0; 0];

    println!("{:?}", v.iter().rposition(|&x| x == 2 )); // None

    println!("{:?}", v.iter().rposition(|&x| x > 2)); // None

    println!("{:?}", v.iter().rposition(|&x| x > 5)); // None

}

実行結果