我正在寻找一种“生锈”的方法将 Vec<Vec> 累积到 Vec 中,以便每个内部 Vec 的第一个元素相加在一起,每个 Vec 的每个第二个元素相加在一起,等等......,结果被收集到 Vec 中?如果我只使用 sum()、fold() 或accumulate(),我相信我会将整个第一个 Vec 累加到一个元素中,而不是包含在 2D Vec 中的每个内部 Vec 的第一个元素。
pub fn main() {
let v1 = vec![1.1, 2.2, 3.3];
let vv = vec![v1; 3];
let desired_result = vec![3.3, 6.6, 9.9];
}
Run Code Online (Sandbox Code Playgroud)
有时,在 Rust 中很容易忘记命令式方法的存在,并且是一个简单的解决方案。
let mut sums = vec![0.0; vv[0].len()];
for v in vv {
for (i, x) in v.into_iter().enumerate() {
sums[i] += x;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
885 次 |
最近记录: |