ベクトルをサイズ N の小さなベクトルに分割するにはどうすればよいでしょうか? 質問する

ベクトルをサイズ N の小さなベクトルに分割するにはどうすればよいでしょうか? 質問する

ベクトルを分割する方法

let v: Vec<u8>; // vector with size x

最大サイズnのベクトルのベクトルに変換しますか? 擬似コード:

let n: usize = 1024;
let chunks_list: Vec<Vec<u8>> = chunks(v, n);

またはスライスを使用する(コピーを避けるため):

let v: &[u8]; 
let chunks_list: Vec<&[u8]> = chunks(v, n);

ベストアンサー1

Rust スライスには、そのために必要なメソッドがすでに含まれています。チャンク

まず、次のようになります。

let src: Vec<u8> = vec![1, 2, 3, 4, 5];

スライスのベクトルを取得できます(コピーなし):

let dst: Vec<&[u8]> = src.chunks(3).collect();

またはベクトルのベクトル(遅くて重い):

let dst: Vec<Vec<u8>> = src.chunks(3).map(|s| s.into()).collect();

遊び場

おすすめ記事