MST

星途 面试题库

面试题:Rust迭代器模式在复杂数据结构遍历中的应用

给定一个嵌套的`Vec<Vec<i32>>`,即二维数组,使用迭代器模式将其扁平化为一维数组,并对其中大于10的数字求立方和。请描述实现思路并写出代码。
12.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 使用into_iter将二维数组转化为迭代器,通过flatten方法将其扁平化为一维迭代器。
  2. 使用filter方法过滤出大于10的数字。
  3. 使用map方法对过滤后的数字求立方。
  4. 使用sum方法计算立方和。

代码

fn main() {
    let nested_vec: Vec<Vec<i32>> = vec![
        vec![1, 11, 5],
        vec![15, 3, 20],
        vec![7, 8, 12]
    ];
    let result: i32 = nested_vec.into_iter()
                               .flatten()
                               .filter(|&num| num > 10)
                               .map(|num| num * num * num)
                               .sum();
    println!("结果是: {}", result);
}