MST

星途 面试题库

面试题:Rust 向量调整大小的常见方法及应用场景

在 Rust 中,向量(Vec)调整大小有多种方式,请列举至少两种常见的调整大小的方法,并说明它们各自适用的场景。例如,在需要频繁添加元素且事先知道大致数量的场景下,哪种方法更合适,为什么?
18.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. push 方法
    • 描述:用于向向量末尾添加单个元素。
    • 适用场景:适用于需要动态、逐个添加元素的场景。例如,在处理数据流时,每接收到一个新数据项就添加到向量中,不需要预先知道元素的大致数量。
  2. extend 方法
    • 描述:可将一个可迭代对象(如另一个向量、数组、迭代器等)的所有元素添加到当前向量末尾。
    • 适用场景:当有一批数据需要一次性添加到向量中时适用。比如,从文件中读取了一批数据存储在数组中,要将这批数据添加到向量,extend 比逐个使用 push 更高效。
  3. resize 方法
    • 描述:将向量的长度调整为指定大小。如果新长度大于原长度,会使用指定的默认值填充新增部分;如果新长度小于原长度,会截断向量。
    • 适用场景:当预先知道向量最终需要的大小,并且需要用特定的默认值填充时适用。例如,初始化一个固定大小的向量来存储某种默认值的数据,之后再对其中元素进行修改。
  4. reserve 方法
    • 描述:预先分配足够的容量来容纳指定数量的额外元素,而不改变向量的当前长度。
    • 适用场景:在需要频繁添加元素且事先知道大致数量的场景下适用。因为 reserve 方法通过预先分配足够的内存,减少了在添加元素过程中由于向量容量不足而导致的重新分配内存次数。重新分配内存涉及到内存的复制等操作,开销较大,所以预先使用 reserve 方法分配内存可以提高性能。