MST

星途 面试题库

面试题:Rust中如何在初始化向量时合理规划容量

在Rust中,假设有一个场景,你需要存储大约1000个`i32`类型的数字到一个向量中,简述如何在初始化向量时合理规划其容量,以减少动态扩容带来的性能损耗,并给出相应代码示例。
48.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 简述: 在Rust中,Vec(向量)在初始化时默认容量为0,随着元素的添加,当容量不足时会动态扩容。为了减少动态扩容带来的性能损耗,可以在初始化向量时根据预估的元素数量合理设置其容量。对于需要存储大约1000个i32类型数字的场景,我们可以在创建向量时使用with_capacity方法来设置初始容量为1000。

  2. 代码示例

fn main() {
    let mut numbers: Vec<i32> = Vec::with_capacity(1000);
    for i in 0..1000 {
        numbers.push(i);
    }
    // 此时numbers向量已存储1000个i32类型数字,且初始化时已规划好容量,减少了动态扩容的性能损耗
}