Rust 程式設計中的向量


Rust 中的向量類似於可調整大小的陣列。它們用於儲存同類型的物件,並且連續儲存在記憶體中

與切片類似,它們的大小在編譯時未知,並且可以相應地增長或縮小。它在 Rust 中表示為 Vec<T>

儲存在向量中的資料是在堆中分配的。

示例

在下面的示例中,使用 Rust 提供的 Vec::new(); 函式建立了一個名為 d 的向量。

fn main() {
   let mut d: Vec = Vec::new();
   d.push(10);
   d.push(11);
   println!("{:?}", d);
   d.pop();
   println!("{:?}", d);
}

我們使用 push() 函式將元素推入向量,並使用 pop() 函式移除元素。

輸出

[10, 11]
[10]

Rust 還為我們提供了另一種建立向量的方法。我們可以使用 vec!宏 而不是 Vec::new() 函式。

示例

線上演示

fn main() {
   let v = vec![1,2,3];
   println!("{:?}",v);
}

輸出

[1, 2, 3]

上面的向量不可變,如果我們嘗試更改其中一些值,我們將得到一個錯誤。

示例

線上演示

fn main() {
   let v = vec![1,2,3];
   println!("{:?}",v);
   v[0] = 99;
   println!("{:?}",v);
}

輸出

  |
4 | let v = vec![1,2,3];
  | - help: consider changing this to be mutable: `mut v`
5 | println!("{:?}",v);
6 | v[0] = 99;
  | ^ cannot borrow as mutable

我們可以在正在定義的向量名稱前新增 mut 關鍵字使其可變。

示例

線上演示

fn main() {
   let mut v = vec![1,2,3];
   println!("{:?}",v);
   v[0] = 99;
   println!("{:?}",v);
}

輸出

[1, 2, 3]
[99, 2, 3]

最後,應記住,當向量的長度超過容量時,向量的容量將自動增加。

更新時間: 05-04-2021

364 次瀏覽

Kickstart 你的事業

透過完成課程獲得認證

開始
廣告