如何将向量拆分为大小为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();
操场