如何在没有循环的情况下计算具有某个值的向量中的元素?

时间:2017-07-27 14:29:25

标签: rust

如何使用特定值(例如[91, 55, 77, 91])计算向量中的元素(例如91)而不使用循环(如下所示)?

fn count_eq(vec: &Vec<i64>, num: i64) -> i64 {
    let mut counter = 0;
    for i in vec {
        if *i == num {
            counter += 1;
        }
    }
    return counter;
}

fn main() {
    let v = vec![91, 55, 77, 91];
    println!("count 91: {}", count_eq(&v, 91));
}

1 个答案:

答案 0 :(得分:10)

您可以使用Iterator::filter,然后使用count

fn main() {
    let v = vec![91, 55, 77, 91];
    println!("count 91: {}", v.iter().filter(|&n| *n == 91).count());
}
相关问题