如何将向量拆分为大小为N的较小向量?

如何分割向量

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

成一个最大大小为 n 的向量的向量?伪代码:

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

或使用切片(以避免复制):

回答

Rust slices 已经包含了必要的方法:chunks。

从此开始:

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();

操场


以上是如何将向量拆分为大小为N的较小向量?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>