1. 程式人生 > 其它 >【Rust】動態陣列(二)

【Rust】動態陣列(二)

環境

  • Time 2022-03-16
  • Rust 1.59.0

概念

動態陣列分配在棧上,長度可以變化。

示例

reserve

保留額外空間,相當於擴容,容量可能會比擴容的大,帶異常版本:try_reserve

fn main() {
    let mut vec = Vec::new();
    vec.push(0);
    vec.reserve(4);
    println!("{}", vec.capacity()); // 8
}

reserve_exact

fn main() {
    let mut vec = Vec::new();
    vec.push(0);
    vec.reserve_exact(4);
    println!("{}", vec.capacity()); // 5
}

shrink_to_fit

fn main() {
    let mut vec = vec![0, 1, 2, 3, 4];
    vec.reserve(4);
    println!("{}", vec.capacity());
    vec.shrink_to_fit();
    println!("{}", vec.capacity());
}

shrink_to

fn main() {
    let mut vec = vec![0, 1, 2, 3, 4];
    vec.reserve(4);
    println!("{}", vec.capacity());
    vec.shrink_to(7);
    println!("{}", vec.capacity());
}

into_boxed_slice

fn main() {
    let vec = vec![0, 1, 2, 3, 4];
    let slice = vec.into_boxed_slice();
    println!("{slice:?}");
}

總結

瞭解了動態陣列中相關的一些方法。

附錄