如何使用Rayon累积并行求和矢量?

问题描述

我的意图是创建一个矢量,该矢量由原始矢量的累加和以并行方式形成。例如,vec![1,2,3,4]变成vec![1,6,10]

尽管尝试了几个小时,但我不知道如何使用人造丝来完成此操作。

这是我当前尝试累积变量的地方:

use rayon::prelude::*;

fn parallel(list: &Vec<u64>) -> Vec<u64> {
    let mut a: u64 = 0;
    let b = list
        .par_iter()
        .cloned()
        .map(|e| {
            a += e;
            a
        })
        .collect();
    b
}

我要

error[E0594]: cannot assign to `a`,as it is a captured variable in a `Fn` closure
 --> src/lib.rs:9:13
  |
9 |             a += e;
  |             ^^^^^^ cannot assign

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)