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]
最后,应记住,当向量的长度超过容量时,向量的容量将自动增加。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP