Rust ベクタ(可変配列)の値を指定した単位で区切る

Rust ベクタ(可変配列)の値を指定した単位で区切る

Rustで、ベクタ(可変配列)の値を指定した単位で区切るサンプルコードを記述してます。「chunks」に単位を指定して「collect::>()」を使用します。Rustのバージョンは1.62.1を使用してます。

環境

  • OS windows11 home
  • rustc 1.65.0

指定した単位で区切る

指定した単位で区切るには、「chunks().collect::<Vec<_>>()」を使用します。

ベクタ.chunks(任意の数).collect::<Vec<_>>();

実際に使用してみます。

fn main() {

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

    println!("{:?}", v.chunks(2).collect::<Vec<_>>() ); // [[1, 2], [3, 4], [5]]

    println!("{:?}", v.chunks(3).collect::<Vec<_>>() ); // [[1, 2, 3], [4, 5]]

}

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

最大値

最大値を超えた場合は、空の配列が返り、最大値の場合だと、そのまま入れ子のベクタが生成されます。

fn main() {

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

    println!("{:?}", v.chunks(5).collect::<Vec<_>>() ); // [[1, 2, 3, 4, 5]]
    
    println!("{:?}", v.chunks(6).collect::<Vec<_>>() ); // [[1, 2, 3, 4, 5]]

}

実行結果

空の配列

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

fn main() {

    let v = vec![0; 0];

    println!("{:?}", v.windows(1).collect::<Vec<_>>() ); // []

    println!("{:?}", v.windows(2).collect::<Vec<_>>() ); // []

}

実行結果