网站首页 > 博客文章 正文
Rust 向量是一个长度可变的数组,它使用一段 连续的内存块 存储相同类型的元素。
Rust 向量与数组不同之处在于:向量的长度是可变的,可以在运行时增长或者缩短,而数组的长度是固定不变的。
Rust 向量以特定顺序(添加顺序)将数据存储为元素序列。
- 元素添加到向量时会添加到向量的末尾。这个操作类似于 栈 ( stack ),因此可以用来实现 栈 的功能。
- 向量的内存在 堆 ( heap ) 上存储,因此长度动态可变。
1. Rust 创建向量的语法
- Rust 在标准库中定义了结构体 Vec 用于表示一个向量。
- 同时提供了 new() 静态方法用于创建一个结构体 Vec 的实例。
fn main(){
let mut vec_name = Vec::new();
}
- 除了提供 new() 静态方法创建向量之外, Rust 标准库还提供了 vec!() 宏来简化向量的创建。
fn main(){
let vec_name = vec![10,20,30];
}
2.操作向量和元素的方法
fn main(){
// 操作向量和元素方法
// 创建向量的一般通过调用 Vec 结构的 new() 静态方法来创建。
let mut v = Vec::new();
// 当有了向量的一个实例后,再通过 push() 方法像向量添加元素
v.push(20);
v.push(30);
v.push(40);
println!("size of vector is {}",v.len()); // len() 方法用于获取向量的元素个数
println!("{:?}",v);
// 输出
// size of vector is 3
// [20, 30, 40]
// 使用 vec! 宏创建向量
// 为了使创建向量看起来像创建数组那么简单
// Rust 标准库提供了 vect! 用于简化向量的创建
let v1 = vec![1,2,3];
println!("{:?}",v1);
// 输出:[1, 2, 3]
// append 方法用于将一个向量拼接到另一个向量的尾部
let mut vv1 = vec![2,4,6,8];
let mut vv2 = vec![20,40,60];
vv1.append(&mut vv2);
println!("{:?}",vv1);
// 输出:[2, 4, 6, 8, 20, 40, 60]
// 删除向量中的某个元素 remove()
let mut v2 = vec![10,20,30];
v2.remove(1);
println!("{:?}",v2);
// 输出:[10, 30]
// 判断向量是否包含某个元素
// contains() 用于判断向量是否包含某个值。
// 如果值在向量中存在则返回 true,否则返回 false。
let v3 = vec![10,20,30];
if v3.contains(&20){
println!("found 20");
}
println!("{:?}",v3);
// found 20
// [10, 20, 30]
// 迭代/遍历向量
// 可以直接使用 for in 语法来遍历向量
let mut v4 = Vec::new();
v4.push(15);
v4.push(25);
v4.push(35);
for i in v4{
println!("{}",i);
}
// 输出
// 15
// 25
// 35
// println!("{:?}",v4); 向量已经不可用会出错
for j in &v4{
println!("{}",j);
}
println!("{:?}",v4);
// 输出
// 15
// 25
// 35
// [15, 25, 35]
}
猜你喜欢
- 2024-09-11 Rust 写操作系统之Hello world (三)
- 2024-09-11 Rust: 如何用Panic打造健壮应用(rust zig)
- 2024-09-11 在 Linux 新版内核中的 Rust 初探,原来是这样的
- 2024-09-11 Rust 入坑指南:鳞次栉比 | CSDN 博文精选
- 2024-09-11 学习Rust编程——使用macro_rules!创建宏
- 2024-09-11 利用 Rust 过程宏实现的 derive-with 库
- 2024-09-11 Rust 基础入门-错误处理和宏-错误处理
- 2024-09-11 Rust 基础入门-错误处理和宏-属性式宏&函数式宏
- 2024-09-11 Rust中巧用matches!宏(rust腐蚀免费版)
- 2024-09-11 Rust编程语言里的宏回调(rust宏数据)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)