[英]How to create an empty iterator for a certain collection type (list/set/map) in Rust?
[英]How to create an iterator that yields elements of a collection specified by a list of indices in Rust?
是否有一種簡潔的方法可以使用給定的索引列表迭代向量? 我有類似於此的代碼:
fn main() {
// Create a vector
let v = vec![0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 7.8];
// Create a series of indices
let i = vec![3, 4, 2, 1];
// Iterate over the elements in v in the order specified by each index in i
for j in &i {
println!("{}", v[*j]);
}
}
我想對其進行修改,以便直接遍歷v
中的元素,而不必遍歷i
中的索引。 基本上,看起來類似於for x in vs[i]
東西。
一種可能:
i.iter().map(|idx| v[*idx])
如:
fn main() {
// Create a vector
let v = vec![0.1, 1.2, 2.3, 3.4, 4.5, 5.6, 7.8];
// Create a series of indices
let i = vec![3, 4, 2, 1];
// Iterate over the elements in v in the order specified by i
for j in i.iter().map(|idx| v[*idx]) {
println!("{}", j);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.