Rust ベクタ(可変配列)の値を任意の数で順番に区切る
Rustで、ベクタ(可変配列)の値を任意の数で順番に区切るサンプルコードを記述してます。「windows().collect::<Vec<_>>()」で可能です。Rustのバージョンは1.66.0を使用してます。
環境
- OS windows11 home
- rustc 1.66.0
任意の数で順番に区切る
任意の数で順番に区切るには、「windows().collect::<Vec<_>>()」を使用します。
ベクタ.windows(任意の数).collect::<Vec<_>>();
実際に使用してみます。
fn main() {
let v = vec![ 1, 2, 3, 4, 5 ];
println!("{:?}", v.windows(2).collect::<Vec<_>>() ); // [[1, 2], [2, 3], [3, 4], [4, 5]]
println!("{:?}", v.windows(3).collect::<Vec<_>>() ); // [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
}
実行結果を見ると、取得されていることが確認できます。
最大値
最大値を超えた場合は、空の配列が返り、最大値の場合だと、そのまま入れ子のベクタが生成されます。
fn main() {
let v = vec![ 1, 2, 3, 4, 5 ];
println!("{:?}", v.windows(5).collect::<Vec<_>>() ); // [[1, 2, 3, 4, 5]]
println!("{:?}", v.windows(6).collect::<Vec<_>>() ); // []
}
実行結果
空の配列
空の配列に使用すると、「空の配列」が返ります。
fn main() {
let v = vec![0; 0];
println!("{:?}", v.windows(1).collect::<Vec<_>>() ); // []
println!("{:?}", v.windows(2).collect::<Vec<_>>() ); // []
}
実行結果
-
前の記事
C# 文字列が半角の数値であるかの判定で「Regex.IsMatch」と「char.IsDigit」と「Int32.TryParse」と「foreach」のパフォーマンスを計測して比較する 2023.02.13
-
次の記事
kotlin mapを使用する 2023.02.13
コメントを書く