如何创建一个迭代器,该迭代器生成由Rust中的索引列表指定的集合元素?

wyer33

是否有一种简洁的方法可以使用给定的索引列表遍历向量?我有看起来像这样的代码:

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]

mu

一种可能性:

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);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个迭代器,该迭代器生成的项目在python中没有哪个项目的单个字符表示n次以上?

如何使迭代器指向与C ++集合中的另一个元素相同的元素?

Java删除迭代器,该迭代器删除同一列表中的另一个元素

如何在Rust中定义一个包含可迭代项的结构上的迭代器?

实现一个自定义迭代器,该迭代器会跳过WeakSet中的nil个元素

在std :: map中,获得一个迭代器,该迭代器指向比键更大的LAST元素

如何跳过Rust迭代器中的第N个元素?

如何编写一个带迭代器的Rust函数?

Laravel 访问另一个迭代器中的集合元素

如何使用Rust从stdin创建一个高效的char迭代器?

在Rust中,如何创建可变的迭代器?

如何创建迭代器重复 Rust 中的最后一个元素

在 Frida 中迭代集合 - 创建迭代器

您可以对集合的所有值(其中一个值和对该元素的引用)进行迭代的迭代器吗?

如何获得从最后一个元素开始的迭代器

创建一个蛮力迭代器

如何使用相同的迭代器获取列表的上一个元素?

在我的数组列表中添加一个迭代器

在迭代器上创建方法,该方法在Rust中返回迭代器

在Ranges-v3中,如何从一对迭代器创建一个范围?

如何在python中创建一个迭代器类,它将以相反的顺序迭代输入?

如何检测地图迭代器中的最后一个元素

在C ++中,可以实现一个迭代器接口,在该接口中,前进会使“当前”元素无效?

获取与迭代器函数匹配的集合的第一个元素

是否可以在 Lua 中创建一个可以迭代字典的迭代器?

Qt:为模板(地图,列表,集合等)构造一个可变的迭代器

在Python中,如何在一个迭代器上进行迭代,然后在另一个迭代器上进行迭代?

Rust函数需要一个迭代器,并返回带有变异项的迭代器?

如何创建一个输入是对象或可迭代的集合