您的位置:首页 > 汽车 > 时评 > 画册设计网站有哪些_施工企业成本管理的方法与手段_中央常委成员名单_网站更新seo

画册设计网站有哪些_施工企业成本管理的方法与手段_中央常委成员名单_网站更新seo

2024/12/23 8:39:42 来源:https://blog.csdn.net/LuckyLay/article/details/144334459  浏览:    关键词:画册设计网站有哪些_施工企业成本管理的方法与手段_中央常委成员名单_网站更新seo
画册设计网站有哪些_施工企业成本管理的方法与手段_中央常委成员名单_网站更新seo

Rust学习笔记_15——Union
Rust学习笔记_16——Vector
Rust学习笔记_17——HashMap


HashSet

文章目录

    • HashSet
      • 1. 创建
      • 2. 插入
      • 3. 检查元素是否存在
      • 4. 遍历
      • 5. 移除
      • 6. 工作原理
      • 7. 示例


Rust 中的 HashSet 是一种集合数据结构,它允许你存储不重复的元素,并且可以在常数时间内(O(1) 平均时间复杂度)检查一个元素是否存在于集合中。

HashSet 也是 Rust 标准库的一部分,位于 std::collections 模块中。

1. 创建

// 引入HashSet类型
use std::collections::HashSet;// 创建HashSet实例
let mut set: HashSet<i32> = HashSet::new();

2. 插入

使用 insert 方法可以向 HashSet 中插入元素。

由于 HashSet 不允许重复元素,如果尝试插入一个已经存在的元素,insert 方法将返回 false,否则返回 true

set.insert(1);
set.insert(2);
set.insert(2); // 这将返回 false,因为 2 已经存在于集合中

3. 检查元素是否存在

使用 contains 方法可以检查一个元素是否存在于 HashSet 中。该方法返回一个布尔值。

let exists = set.contains(&1); // 这将返回 true

4. 遍历

使用迭代器来遍历 HashSet 中的元素。

由于 HashSet 不保证元素的存储顺序,因此遍历的顺序是不确定的。

for elem in &set {println!("{}", elem);
}

5. 移除

使用 remove 方法可以从 HashSet 中移除一个元素。

如果元素存在并被成功移除,该方法将返回 true,否则返回 false

set.remove(&1); // 这将返回 true,并从集合中移除元素 1

6. 工作原理

HashSet 是基于哈希表实现的。

当你向 HashSet 中插入一个元素时,它的哈希值被计算出来,并用来确定元素在内部数组(也称为“桶”或“槽”)中的位置。

如果两个元素的哈希值相同(即发生了哈希冲突),它们将被存储在同一个桶中,并通过链地址法(也称为“拉链法”)或开放地址法来解决冲突。

在 Rust 的 HashSet 实现中,默认使用了 SipHash 作为哈希函数,这是因为它提供了良好的哈希分布和防御哈希洪水攻击的能力。

7. 示例

use std::collections::HashSet;fn main() {let mut set: HashSet<i32> = HashSet::new();// 插入元素set.insert(1);set.insert(2);set.insert(2); // 这将不会改变集合,因为 2 已经存在// 检查元素是否存在if set.contains(&1) {println!("1 is in the set");}// 移除元素set.remove(&1);if !set.contains(&1) {println!("1 is not in the set anymore");}// 遍历for elem in &set {println!("{}", elem);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com