gpt4 book ai didi

loops - 如何以函数式风格迭代二维向量?

转载 作者:行者123 更新时间:2023-11-29 08:11:24 24 4
gpt4 key购买 nike

不幸的是,以下内容不起作用:

let vecs: Vec<Vec<i32>> = get_vectors();

let result = vecs
.iter()
.iter()
.do_something()
.do_something_else() // etc

编译错误:

error[E0599]: no method named `iter` found for type`std::slice::Iter<'_, std::vec::Vec<i32>>` in the current scope
--> src/main.rs:49:10
|
49 | .iter()
|

我可以用它来避免

for row in vecs.iter() {
for column in row.iter() {
// do something
}
}

我真的更喜欢 .iter() 方法。我怎样才能做到这一点?

最佳答案

使用flatten :

fn main() {
let v = vec![vec![1, 2], vec![3, 4], vec![5, 6]];

for i in v.iter().flatten() {
println!("{}", i); // 1 2 3 4 5 6
}
}

flatten 将嵌套迭代器转换为一个迭代器。

关于loops - 如何以函数式风格迭代二维向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48852454/

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