Q:

How to count the elements in a vector with some value without looping?

How do I count the elements in a vector (e.g. [91, 55, 77, 91]) with a certain value (e.g. 91) without using a loop (as shown below)?
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));
}

A:

You can use Iterator::filter and then count it:
fn main() {
    let v = vec![91, 55, 77, 91];
    println!("count 91: {}", v.iter().filter(|&n| *n == 91).count());
}

