网站首页 > 技术文章 正文
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-10-18 「NLP」BERT fintune 的艺术 女性人文艺术欣赏ppt
- 2024-10-18 大模型开发 - 一文搞懂Transformer工作原理
- 2024-10-18 向量的玩法规则,一起来啊! 向量入门
- 2024-10-18 MutualNet:一种“宽度-输入分辨率”互相学习的网络轻量化方法
- 2024-10-18 Python Numpy库详细教程 numpy python2.7
- 2024-10-18 Numpy数组的索引与切片和变形拼接分裂
- 2024-10-18 端到端声源分离研究:现状、进展和未来
- 2024-10-18 别人家的高中生:入大学前,Ta详细梳理了GAN的发展脉络
- 2024-10-18 CIKM最佳论文:11亿节点的大型图,看闲鱼用图卷积过滤垃圾评论
- 2024-10-18 南方测绘推荐 | 武汉大学钟青岑:顾及路网约束的深度地图匹配方法
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)