Rust 集合

前言

在本教程中,我们将深入探讨 Rust 编程语言中的集合。如果你对 Rust 的基础知识还不熟悉,建议先了解一下 Rust 的基本语法和概念。

什么是集合?

在计算机科学中,集合(Collection)是指存储多个值的数据结构。这些值可以是相同类型的,也可以是不同类型的。Rust 提供了几种内置的集合类型,它们都非常有用且高效。

Rust 中的集合类型

  1. 向量(Vector)Vec<T>,一个可增长的数组,元素在堆上分配。它允许在运行时添加或移除元素。
  2. 字符串(String)String,一个 UTF-8 编码的可增长的字符串类型,由标准库提供。与向量相似,字符串也允许在运行时添加或移除字符。
  3. 哈希表(HashMap)std::collections::HashMap<K, V>,一个键值对的无序集合,用于快速查找、插入和删除元素。
  4. 哈希集(HashSet)std::collections::HashSet<T>,一个无序的元素集合,用于快速查找和删除元素。
  5. 数组(Array)[T; N],一个固定大小的集合,其中所有元素必须是相同类型的。在栈上分配。
  6. 切片(Slice)&[T],一种对数组或向量的不可变引用。它允许你在不复制数据的情况下操作集合的一部分。

使用向量 (Vector)

let mut vec = Vec::new(); // 创建一个空的向量
vec.push(5); // 添加元素
vec.push(6);
println!("{:?}", vec); // 输出:[5, 6]

使用字符串 (String)

let mut s = String::new(); // 创建一个空的字符串
s.push_str("Hello, "); // 添加字符串片段
s.push('W'); // 添加单个字符
println!("{}", s); // 输出:Hello, W

使用哈希表 (HashMap)

use std::collections::HashMap;
let mut scores = HashMap::new(); // 创建一个空的哈希表
scores.insert(String::from("Blue"), 10); // 插入键值对
scores.insert(String::from("Yellow"), 50);
println!("{:?}", scores); // 输出:{"Blue": 10, "Yellow": 50}

使用哈希集 (HashSet)

use std::collections::HashSet;
let mut set = HashSet::new(); // 创建一个空的哈希集
set.insert(5); // 插入元素
set.insert(6);
println!("{:?}", set); // 输出:{5, 6}

使用数组 (Array)

let a = [1, 2, 3, 4, 5]; // 创建一个固定大小的数组
println!("{}", a[0]); // 输出:1

使用切片 (Slice)

let a = [1, 2, 3, 4, 5];
let slice = &a[1..3]; // 创建一个数组的切片,包含索引 1 到 3 的元素(不包括 3)
println!("{:?}", slice); // 输出:[2, 3]

总结

本教程介绍了 Rust 中最常用的集合类型,并提供了一些示例代码来演示如何使用它们。希望通过这个教程,你可以更好地理解和掌握 Rust 中的集合。