Rust Vec<T> 集合使用教程

devtools/2024/9/24 19:13:52/

Rust Vec 集合使用教程

文章目录

  • Rust Vec<T> 集合使用教程
    • 1. 创建和初始化 `Vec<T>`
      • 代码示例
      • 运行结果
    • 2. 访问和修改 `Vec<T>` 中的元素
      • 代码示例
      • 运行结果
    • 3. 添加和删除 `Vec<T>` 中的元素
      • 代码示例
      • 运行结果
    • 4. 遍历 `Vec<T>`
      • 代码示例
      • 运行结果
    • 5. 使用 `Vec<T>` 的内置方法
      • 代码示例
      • 运行结果

本教程将介绍如何在 Rust 中使用 Vec<T> 集合。 Vec<T> 是一个动态数组,可以存储任意类型的元素。我们将通过以下小部分来学习如何使用 Vec<T>

  1. 创建和初始化 Vec<T>
  2. 访问和修改 Vec<T> 中的元素
  3. 添加和删除 Vec<T> 中的元素
  4. 遍历 Vec<T>
  5. 使用 Vec<T> 的内置方法

1. 创建和初始化 Vec<T>

要创建一个空的 Vec<T>,可以使用 Vec::new() 方法。要创建一个包含初始元素的 Vec<T>,可以使用 vec! 宏。

代码示例

rust">fn main() {let mut v1: Vec<i32> = Vec::new(); // 创建一个空的 Vec<i32>let v2: Vec<i32> = vec![1, 2, 3]; // 创建一个包含初始元素的 Vec<i32>
}

运行结果

无输出。

2. 访问和修改 Vec<T> 中的元素

要访问 Vec<T> 中的元素,可以使用索引操作符 []。要修改 Vec<T> 中的元素,可以使用索引操作符 [] 并赋值。

代码示例

rust">fn main() {let mut v: Vec<i32> = vec![1, 2, 3];println!("v[0]: {}", v[0]); // 访问第一个元素v[1] = 4; // 修改第二个元素println!("v: {:?}", v); // 输出整个 Vec<i32>
}

运行结果

v[0]: 1
v: [1, 4, 3]

3. 添加和删除 Vec<T> 中的元素

要向 Vec<T> 添加元素,可以使用 push() 方法。要删除 Vec<T> 中的元素,可以使用 remove() 方法。

代码示例

rust">fn main() {let mut v: Vec<i32> = vec![1, 2, 3];v.push(4); // 添加元素v.remove(1); // 删除第二个元素println!("v: {:?}", v); // 输出整个 Vec<i32>
}

运行结果

v: [1, 3]

4. 遍历 Vec<T>

要遍历 Vec<T>,可以使用 for 循环。

代码示例

rust">fn main() {let v: Vec<i32> = vec![1, 2, 3];for i in &v {println!("{}", i); // 输出每个元素}
}

运行结果

1
2
3

5. 使用 Vec<T> 的内置方法

Vec<T> 提供了许多内置方法,如 len()capacity()is_empty()contains() 等。

代码示例

rust">fn main() {let v: Vec<i32> = vec![1, 2, 3];println!("len: {}", v.len()); // 输出长度println!("capacity: {}", v.capacity()); // 输出容量println!("is_empty: {}", v.is_empty()); // 判断是否为空println!("contains: {}", v.contains(&2)); // 判断是否包含某个元素
}

运行结果

len: 3
capacity: 3
is_empty: false
contains: true

http://www.ppmy.cn/devtools/24965.html

相关文章

SRTP + RTCP + SCTP

SRTP&#xff08;Secure Real-time Transport Protocol&#xff09; 主要功能&#xff1a;SRTP 是 RTP 的一个扩展&#xff0c;提供额外的安全特性&#xff0c;如加密、完整性校验和认证。它旨在保护实时传输的音频和视频流不被窃听或篡改。加密传输&#xff1a;SRTP 使用强加密…

源码篇--Nacos服务--中章(8):Nacos服务端感知客户端实例变更-3

文章目录 前言一、客户端实例变更&#xff1a;二、实例变更感知&#xff1a;2.1 实例注册信息通知&#xff1a;2.1.1 接收DistroDataRequest 请求&#xff1a;2.1.2 onReceive 处理请求&#xff1a;2.1.3 processData 处理请求&#xff1a;2.1.4 handlerClientSyncData 处理数据…

《python编程从入门到实践》day16

昨日知识点回顾 从模块中导入类/模块 今日知识点学习 第十章 文件和异常 10.1 从文件中读取数据 10.1.1 读取整个文件 txt文件与程序文件在同一级目录 with open(pi_digits.txt) as file_object:contents file_object.read() print(contents)# 运行结果&#xff1a; # 3.1…

数据脱敏及数据库安全风险

数据脱敏是什么 数据脱敏&#xff0c;指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。 在涉及客户安全数据或者一些商业的敏感数据的情况下&#…

格雷希尔E10系列大电流测试连接器,在新能源汽车大电流接插件的电气测试方案

在新能源汽车的电驱动、电池包等设备的电测试处理中&#xff0c;格雷希尔E10系列电测试连接器具有显著的优势。E10系列的核心设计——插孔/插针&#xff0c;可以达到实验室10万次的插拔寿命&#xff0c;相比传统公母电接头500次左右的连接寿命&#xff0c;E10系列无疑大大减少测…

教程推荐:手机应用自动化

手机应用程序的自动化通常涉及使用专门设计的自动化框架和工具。对于Android和iOS平台&#xff0c;以下是一些常用的自动化工具&#xff1a; Android: Espresso: Espresso是谷歌官方支持的自动化测试框架。它适用于写UI测试来模拟用户对Android应用的交云。Espresso工作在应用…

Java 面向对象—重载和重写/覆盖(面试)

重载和重写/覆盖&#xff1a; 重载&#xff08;overload&#xff09;&#xff1a; Java重载是发生在本类中的&#xff0c;允许同一个类中&#xff0c;有多个同名方法存在&#xff0c;方法名可以相同&#xff0c;方法参数的个数和类型不同&#xff0c;即要求形参列表不一致。重载…

小猫咪邮件在线发送系统源码v1.1,支持添加附件

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 小猫咪邮件在线发送系统源码v1.1&#xff0c;支持添加附件 一款免登录发送邮件&#xff0c;支持发送附件&#xff0c;后台可添加邮箱,前台可选择发送邮箱 网站数据采取本地保存&…