如何使用特定值(例如[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));
}
答案 0 :(得分:10)
您可以使用Iterator::filter
,然后使用count
:
fn main() {
let v = vec![91, 55, 77, 91];
println!("count 91: {}", v.iter().filter(|&n| *n == 91).count());
}