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]
最后,应记住,当向量的长度超过容量时,向量的容量将自动增加。
广告