微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用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 举报,一经查实,本站将立刻删除。