在Rust语言中,对Vec类型的元素进行去重,一种常见的方法是使用一个HashSet来帮助我们快速检查元素是否已经存在。以下是使用HashSet对Vec进行去重的示例代码:
use std::collections::HashSet;
fn main() {
let vec_numbers = vec![1, 2, 2, 3, 4, 4, 5];
let mut vec_unique_numbers = Vec::new();
let mut seen = HashSet::new();
for number in vec_numbers {
if seen.insert(number) {
vec_unique_numbers.push(number);
}
}
println!("Unique numbers: {:?}", vec_unique_numbers);
}
运行后
在这段代码中:
1.我们首先导入了HashSet,它是Rust标准库中的一个集合类型,用于存储唯一的元素。
2.我们创建了一个numbers的Vec,它包含了一些重复的元素。
3.我们定义了两个变量:unique_numbers用于存放去重后的元素,seen是一个HashSet,用于存储已经遍历过的元素。
4.我们遍历numbers中的每个元素,对于每个元素,我们尝试将其插入到seen集合中。由于HashSet的insert方法返回一个布尔值,如果元素已经存在于集合中,返回false,否则返回true,我们可以利用这个特性来判断元素是否是重复的。
5.如果元素是第一次出现(即insert返回true),我们就将其添加到unique_numbers中。
6.最后,我们打印出unique_numbers,它包含了去重后的元素。