• 学习 Rust 的第十二天:如何使用向量


    大家好,

    今天我们来看看计算机科学中的一种基本数据结构,即向量。向量在 Rust 中扮演着至关重要的角色,它在各种编程任务中都发挥着重要作用。像 Rust 这样的系统编程语言以其对安全性和性能的强调而闻名,因此向量提供了一些强大的功能,用于管理数据的动态集合。

    介绍

    在 Rust 中,向量是标准库的一部分,可以用 Vec 来表示。与数组不同,向量的大小是动态的。
    向量可以根据需要增长和缩小,因此对于处理在运行时大小可能会改变的元素集合来说,它们是一种多功能的选择。

    T 是向量中存储的每个值的数据类型。

    fn main(){    
      let mut numbers: Vec<i32> = Vec::new();  
      let vector2 = vec![1,2,3,4,5,6];  
    }  
    
    • 1
    • 2
    • 3
    • 4
    • let mut numbers: Vec = Vec::new();: 这一行声明了一个可变变量 numbers,其类型为 Vec,即一个包含32位有符号整数 (i32) 的向量。它使用 Vec::new() 将其初始化为空向量。
    • let vector2 = vec![1,2,3,4,5,6];: 这一行创建了一个新变量,并用包含整数 1、2、3、4、5 和 6 的向量进行初始化。与使用 Vec::new() 然后逐个推入元素相比,这是一种更简洁的创建向量的方式。

    向向量中添加和删除元素

    向量允许你使用 push 方法添加元素:

    numbers.push(6);
    
    • 1

    要删除元素,你可以使用 pop 等方法来删除最后一个元素:

    let last_element = numbers.pop();
    
    • 1

    访问元素

    你可以使用索引来访问向量中的元素。Rust 使用从零开始的索引:

    let first_element = numbers[0];
    
    • 1

    为了安全地访问元素并处理越界错误,你可以使用 get 方法:

    if let Some(third_element) = numbers.get(2) {  
        println!("Third element: {}", third_element);  
    }
    
    • 1
    • 2
    • 3

    迭代向量

    Rust 提供了各种方法来迭代向量的元素。一个常见的方法是使用 for 循环:

    for num in &numbers {  
        println!("{}", num);  
    }
    
    • 1
    • 2
    • 3

    或者,你可以使用迭代器和函数式操作,如 mapfilter 和 fold

    let doubled_numbers: Vec<i32> = numbers.iter().map(|x| x * 2).collect();
    
    • 1

    示例:查找最大元素

    让我们通过一个简单的示例来演示使用向量。假设我们想要找到整数向量中的最大元素:

    fn find_max(numbers: &Vec<i32>) -> Option<i32> {  
        numbers.iter().fold(None, |max, &x| match max {  
            Some(m) => Some(m.max(x)),  
            None => Some(x),  
        })  
    }  
    fn main() {  
        let numbers = vec![10, 5, 20, 15, 8];  
        if let Some(max) = find_max(&numbers) {  
            println!("Maximum element: {}", max);  
        } else {  
            println!("Vector is empty.");  
        }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    结论

    在本文中,我们介绍了 Rust 中向量的基础知识,包括它们的创建、操作和迭代。掌握了这些知识,你可以自信地将向量整合到你的 Rust 程序中,并利用它们处理动态数据集合的能力。

  • 相关阅读:
    Maven 下载安装配置
    基于SSM的社区疫情防控信息系统
    oracle 基础语法总结
    关于卓越服务的调研报告
    RabbitMQ 常用运维命令
    macOS下VS Code 使用记录(使用调试运行 Python/C 等)
    用自己的fullpage模拟出字节校招的fullpage
    零基础学习软件测试,掌握四点就够了
    JavaScript 编程的内部方法有哪些?
    【数据结构】排序之插入排序和选择排序
  • 原文地址:https://blog.csdn.net/Tory2/article/details/138204876