gpt4 book ai didi

multithreading - 如何使用人造丝进行枚举迭代?

转载 作者:行者123 更新时间:2023-12-03 11:34:49 26 4
gpt4 key购买 nike

我可以迭代和处理索引和其中的变量,例如:

let x = vec![5, 6, 7, 8];

for (index, val) in x.iter().enumerate() {
println!("{} {}", val, index);
}

现在使用 rayon,据我所知,通过 par_iter() 的并行迭代不支持枚举,因为它有 ParallelIterator

Rayon 似乎有 IndexedParallelIterator,但我不确定如何使用它来产生与上面所示的简单 for 循环类似的结果。

并行迭代时是否有跟踪每个值的索引?简单的 for 循环会是什么样子?

最佳答案

当您创建 ParallelIterator来自Vec调用par_iter()它同时也是一个IndexedParallelIterator所以你可以调用enumerate()在它上面获取项目索引,如下所示:

// rayon = "1.5"
use rayon::prelude::*;

fn main() {
let x = vec![5, 6, 7, 8];
x.par_iter().enumerate().for_each(|(index, val)| {
println!("{} {}", val, index);
});
}

playground

关于multithreading - 如何使用人造丝进行枚举迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65656310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com