MST
星途 面试题库

面试题:Rust结构体map函数的性能优化与泛型应用

定义一个泛型Rust结构体`Container<T>`,包含一个`Vec<T>`类型的字段。编写一个方法,该方法类似`map`函数,接受一个闭包,对`Container`中的每个元素进行处理。要求考虑性能优化,例如尽量减少不必要的内存分配,并且该方法需要正确处理`T`可能是复杂类型的情况,同时要保证类型安全。请完整实现该结构体及其方法。
39.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Container<T> {
    data: Vec<T>,
}

impl<T> Container<T> {
    fn new(data: Vec<T>) -> Self {
        Container { data }
    }

    fn map<U, F>(self, f: F) -> Container<U>
    where
        F: FnMut(T) -> U,
    {
        let mut new_data = Vec::with_capacity(self.data.len());
        for item in self.data {
            new_data.push(f(item));
        }
        Container { data: new_data }
    }
}