如何分割向量
let v: Vec<u8>; // vector with size x
Run Code Online (Sandbox Code Playgroud)
成一个最大大小为 n 的向量的向量?伪代码:
let n: usize = 1024;
let chunks_list: Vec<Vec<u8>> = chunks(v, n);
Run Code Online (Sandbox Code Playgroud)
或使用切片(以避免复制):
let v: Vec<u8>; // vector with size x
Run Code Online (Sandbox Code Playgroud)
Rust slices 已经包含了必要的方法:chunks。
从此开始:
let src: Vec<u8> = vec![1, 2, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)
您可以获得切片向量(无副本):
let dst: Vec<&[u8]> = src.chunks(3).collect();
Run Code Online (Sandbox Code Playgroud)
或向量的向量(较慢,较重):
let dst: Vec<Vec<u8>> = src.chunks(3).map(|s| s.into()).collect();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |