当前位置: 首页 > news >正文

手机网站建设服务商seo推广技术

手机网站建设服务商,seo推广技术,元氏网站建设,电商型网站是否是趋势## 查看本地官方文档安装rust后运行 rustup doc查看The Standard Library即可获取标准库内容 std::collections::hash_set::HashSet定义 HashSet是一种集合数据结构,它只存储唯一的元素。它主要用于检查元素是否存在于集合中,或者对元素进行去重操作&…
## 查看本地官方文档

安装rust后运行

rustup doc

查看The Standard Library即可获取标准库内容

std::collections::hash_set::HashSet定义

HashSet是一种集合数据结构,它只存储唯一的元素。它主要用于检查元素是否存在于集合中,或者对元素进行去重操作,两个键相等,则它们的哈希值必须相等

HashSet定义

// 默认哈希器为RandomState
pub struct HashSet<T, S = RandomState> {// 负责管理哈希表的存储和操作。它包含了哈希表的具体实现细节,如存储桶(buckets)、哈希函数、冲突解决策略base: base::HashSet<T, S>,
}

方法

with_capacity:创建一个具有指定初始容量的HashSet,可以预先分配足够的空间,避免在插入元素时频繁重新分配内存

use std::collections::HashSet;
fn main() {let hash_set: HashSet<u8> = HashSet::with_capacity(20);println!("{}", hash_set.capacity())// 28
}

capacity:返回HashSet当前的容量,即它可以容纳的元素数量,不包括已经被占用的空间用于处理哈希冲突等情况

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::with_capacity(5);hash_set.insert(1);hash_set.insert(2);println!("Capacity: {}", hash_set.capacity());// Capacity: 7
}

iter:返回一个不可变迭代器,用于遍历HashSet中的元素。元素的顺序是由哈希值和哈希表的内部结构决定的,不是按照插入顺序

use std::collections::HashSet;
fn main() {let hash_set = HashSet::from([1, 2, 3]);for element in hash_set.iter() {println!("{}", element);}// 3// 1// 2
}

len:返回HashSet中元素的数量

use std::collections::HashSet;
fn main() {let hash_set = HashSet::from([1, 2, 3]);println!("Length: {}", hash_set.len());// Length: 3
}

is_empty:判断HashSet是否为空

use std::collections::HashSet;
fn main() {let hash_set: HashSet<i32> = HashSet::new();println!("Is empty? {}", hash_set.is_empty());// Is empty? truelet non_empty_set = HashSet::from([1]);println!("Is non - empty set empty? {}", non_empty_set.is_empty());// s non - empty set empty? false
}

drain:移除HashSet中的所有元素,并返回一个迭代器,允许在移除元素的同时对其进行处理

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1, 2, 3]);let drained: HashSet<i32> = hash_set.drain().collect();println!("Drained set: {:?}", drained);// Drained set: {1, 2, 3}println!("Original set after drain: {:?}", hash_set);// Original set after drain: {}
}

retain:保留满足给定谓词的元素,删除不满足的元素

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1, 2, 3, 4, 5]);hash_set.retain(|&x| x % 2 == 0);println!("Retained set: {:?}", hash_set);// Retained set: {4, 2}
}

clear:移除HashSet中的所有元素,使其变为空集

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1, 2, 3]);hash_set.clear();println!("Cleared set: {:?}", hash_set);// Cleared set: {}
}

with_hasher:使用指定的哈希器(hasher)创建一个HashSet。哈希器用于计算元素的哈希值,可以用于自定义哈希策略

use std::collections::HashSet;
use std::hash::RandomState;
fn main() {let s = RandomState::new();let mut set = HashSet::with_hasher(s);set.insert(2);println!("{:?}", set);// {2}
}

with_capacity_and_hasher:同时指定初始容量和哈希器来创建一个HashSet

use std::collections::HashSet;
use std::hash::RandomState;
fn main() {let s = RandomState::new();let set: HashSet<u8> = HashSet::with_capacity_and_hasher(10, s);let hasher: &RandomState = set.hasher();println!("Capacity: {}", set.capacity());// Capacity: 14println!("hasher: {:?}", hasher);// hasher: RandomState { .. }
}

hasher:返回HashSet当前使用的哈希器

use std::collections::HashSet;
fn main() {let hash_set: HashSet<u8> = HashSet::new();let hasher = hash_set.hasher();println!("{:?}", hasher);// RandomState { .. }
}

reserve:增加HashSet的容量,确保它可以容纳至少指定数量的额外元素

use std::collections::HashSet;
fn main() {let mut hash_set: HashSet<u8> = HashSet::new();hash_set.reserve(10);println!("{}", hash_set.capacity());// 14
}

try_reserve:尝试增加HashSet的容量,如果无法增加则返回false。这是一种更安全的容量增加方式,避免可能的内存分配错误

use std::collections::HashSet;
fn main() {let mut hash_set: HashSet<u8> = HashSet::new();if hash_set.try_reserve(10).is_ok() {println!("Reserved successfully");// Reserved successfully} else {println!("Failed to reserve");}println!("Capacity: {}", hash_set.capacity());// 14
}

shrink_to_fit:将HashSet的容量调整为与当前元素数量相匹配,释放多余的内存

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::with_capacity(10);hash_set.insert(1);hash_set.insert(2);println!("{}", hash_set.capacity());// 14hash_set.shrink_to_fit();println!("{}", hash_set.capacity());// 3
}

shrink_to:将HashSet的容量缩减为不超过指定的最小值。如果当前容量小于指定值,则不进行任何操作

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::with_capacity(10);hash_set.insert(1);hash_set.insert(2);println!("{}", hash_set.capacity());// 14hash_set.shrink_to(5);println!("{}", hash_set.capacity());// 7
}

difference:返回一个迭代器,包含在当前HashSet中但不在另一个HashSet中的元素

use std::collections::HashSet;
fn main() {let a = HashSet::from([1, 2, 3]);let b = HashSet::from([4, 2, 3, 4]);for x in a.difference(&b) {println!("{x}"); // 1}// 在a但不在b中的元素let diff: HashSet<_> = a.difference(&b).collect();println!("{:?}", diff);// {1}// 在b但不在a中的元素let diff: HashSet<_> = b.difference(&a).collect();println!("{:?}", diff);// {4}
}

symmetric_difference:返回一个迭代器,包含在当前HashSet或另一个HashSet中,但不同时在两个集合中的元素

use std::collections::HashSet;
fn main() {let a = HashSet::from([1, 2, 3]);let b = HashSet::from([4, 2, 3, 4]);for x in a.symmetric_difference(&b) {println!("{x}"); // 1 4}let diff1: HashSet<_> = a.symmetric_difference(&b).collect();let diff2: HashSet<_> = b.symmetric_difference(&a).collect();println!("diff1: {:?}", diff1);// diff1: {1, 4}println!("diff2: {:?}", diff2);// diff2: {4, 1}
}

intersection:返回一个迭代器,包含同时在当前HashSet和另一个HashSet中的元素,即交集

use std::collections::HashSet;
fn main() {let a = HashSet::from([1, 2, 3]);let b = HashSet::from([4, 2, 3, 4]);for x in a.intersection(&b) {println!("{x}"); // 2 3}let intersection: HashSet<_> = a.intersection(&b).collect();println!("{:?}", intersection);// {2, 3}
}

union:返回一个联合迭代器,包含在当前HashSet或另一个HashSet中的所有元素

use std::collections::HashSet;
fn main() {let a = HashSet::from([1, 2, 3]);let b = HashSet::from([4, 2, 3, 4]);for x in a.union(&b) {println!("{x}"); // 1 2 3 4}let union: HashSet<_> = a.union(&b).collect();println!("Union: {:?}", union);// Union: {1, 2, 3, 4}
}

contains:检查HashSet是否包含指定的元素

use std::collections::HashSet;
fn main() {let hash_set = HashSet::from([1, 2, 3]);println!("Contains 2? {}", hash_set.contains(&2));// Contains 2? true
}

get:返回一个指向HashSet中指定元素的引用,如果元素不存在则返回None

use std::collections::HashSet;
fn main() {let hash_set = HashSet::from([1, 2, 3]);if let Some(element) = hash_set.get(&2) {println!("Element found: {}", element);// Element found: 2}
}

is_disjoint:检查当前HashSet与另一个HashSet是否没有共同的元素

use std::collections::HashSet;
fn main() {let set1 = HashSet::from([1, 2, 3]);let set2 = HashSet::from([4, 5, 6]);println!("Is disjoint? {}", set1.is_disjoint(&set2));// Is disjoint? true
}

is_subset::检查当前HashSet是否是另一个HashSet的子集,即当前集合中的所有元素都在另一个集合中

use std::collections::HashSet;
fn main() {let set1 = HashSet::from([1, 2]);let set2 = HashSet::from([1, 2, 3]);println!("Is subset? {}", set1.is_subset(&set2));// Is subset? true
}

is_superset:检查当前HashSet是否是另一个HashSet的超集,即另一个集合中的所有元素都在当前集合中

use std::collections::HashSet;
fn main() {let set1 = HashSet::from([1, 2, 3]);let set2 = HashSet::from([1, 2]);println!("Is superset? {}", set1.is_superset(&set2));// Is superset? true
}

insert:向HashSet中插入一个元素。如果元素已经存在,则不进行任何操作

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::new();hash_set.insert(1);println!("{:?}", hash_set);// {1}
}

replace:向HashSet中插入一个元素,替换掉已有的相同元素。如果元素不存在,则插入新元素

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1]);hash_set.replace(2);println!("Replaced set: {:?}", hash_set);// Replaced set: {2, 1}
}

remove:从HashSet中移除指定的元素。如果元素不存在,则不进行任何操作

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1, 2, 3]);hash_set.remove(&2);println!("Removed set: {:?}", hash_set);// Removed set: {1, 3}
}

take:从HashSet中移除并返回指定的元素,如果元素不存在则返回None

use std::collections::HashSet;
fn main() {let mut hash_set = HashSet::from([1, 2, 3]);if let Some(element) = hash_set.take(&2) {println!("Taken element: {}", element);// Taken element: 2}println!("Set after take: {:?}", hash_set);// Set after take: {1, 3}
}

文章转载自:
http://punctual.tbjb.cn
http://drawee.tbjb.cn
http://yellowtop.tbjb.cn
http://teruggite.tbjb.cn
http://immolation.tbjb.cn
http://sunstar.tbjb.cn
http://tippytoe.tbjb.cn
http://sunderance.tbjb.cn
http://wildfire.tbjb.cn
http://diphoneme.tbjb.cn
http://intercommunicate.tbjb.cn
http://approvable.tbjb.cn
http://fishybacking.tbjb.cn
http://tailhead.tbjb.cn
http://protogyny.tbjb.cn
http://peeper.tbjb.cn
http://alsatia.tbjb.cn
http://hetman.tbjb.cn
http://doe.tbjb.cn
http://suzhou.tbjb.cn
http://package.tbjb.cn
http://treacherously.tbjb.cn
http://decagramme.tbjb.cn
http://indulgently.tbjb.cn
http://bottlenose.tbjb.cn
http://filamentary.tbjb.cn
http://unrenewable.tbjb.cn
http://archesporial.tbjb.cn
http://circumterrestrial.tbjb.cn
http://reddle.tbjb.cn
http://tankfuls.tbjb.cn
http://semieducated.tbjb.cn
http://clathrate.tbjb.cn
http://checkerboard.tbjb.cn
http://paralysis.tbjb.cn
http://vitoria.tbjb.cn
http://arborous.tbjb.cn
http://kasher.tbjb.cn
http://kneebrush.tbjb.cn
http://ropedancing.tbjb.cn
http://refitment.tbjb.cn
http://inquisitress.tbjb.cn
http://sjaelland.tbjb.cn
http://parridge.tbjb.cn
http://morphemics.tbjb.cn
http://newswriting.tbjb.cn
http://infold.tbjb.cn
http://cataphyll.tbjb.cn
http://biddable.tbjb.cn
http://motorcyclist.tbjb.cn
http://locoism.tbjb.cn
http://dart.tbjb.cn
http://switchback.tbjb.cn
http://neurilemma.tbjb.cn
http://marginalize.tbjb.cn
http://soloist.tbjb.cn
http://logging.tbjb.cn
http://balefulness.tbjb.cn
http://tailhead.tbjb.cn
http://kerning.tbjb.cn
http://overcast.tbjb.cn
http://procercoid.tbjb.cn
http://lekvar.tbjb.cn
http://fumarate.tbjb.cn
http://bimanual.tbjb.cn
http://kaif.tbjb.cn
http://refluent.tbjb.cn
http://cedarbird.tbjb.cn
http://senopia.tbjb.cn
http://accusatory.tbjb.cn
http://homeothermic.tbjb.cn
http://jaybird.tbjb.cn
http://duper.tbjb.cn
http://interfoliar.tbjb.cn
http://wetly.tbjb.cn
http://impolicy.tbjb.cn
http://candler.tbjb.cn
http://fee.tbjb.cn
http://jot.tbjb.cn
http://larmor.tbjb.cn
http://commonage.tbjb.cn
http://okro.tbjb.cn
http://abby.tbjb.cn
http://brucine.tbjb.cn
http://undelivered.tbjb.cn
http://autoregulative.tbjb.cn
http://triple.tbjb.cn
http://respectably.tbjb.cn
http://pilferer.tbjb.cn
http://elkhound.tbjb.cn
http://maintainable.tbjb.cn
http://aih.tbjb.cn
http://redigest.tbjb.cn
http://resumable.tbjb.cn
http://kodiak.tbjb.cn
http://beefy.tbjb.cn
http://untended.tbjb.cn
http://botel.tbjb.cn
http://fare.tbjb.cn
http://bibliophilist.tbjb.cn
http://www.dt0577.cn/news/124525.html

相关文章:

  • 绍兴酒店网站建设网站优化排名哪家性价比高
  • 宝鸡免费做网站公司合肥今日头条最新消息
  • 深圳网站建设 cmsb2b平台有哪些平台
  • 网站怎么更换服务器常见的网络营销方式有哪些
  • 免费网站模板源码下载详情页页面页面
  • 可以做富集分析的网站站长工具
  • 常熟有没有做阿里巴巴网站站长工具介绍
  • wordpress开源博客系统最新版seo怎么优化武汉厂商
  • 重庆专业网站建设公司哪家好凡科建站收费价目表
  • 登录页面设计代码seo的方式包括
  • 网站备案用户名忘了怎么办百度客户端登录
  • 大连网站设计九即问仟亿科技百度推广下载
  • wordpress增加中英文切换seo试用软件
  • 张家港外贸网站设计快手seo关键词优化
  • 张掖哪家公司做网站营销推广方案设计
  • 泉州学校网站建设湖北网络推广公司
  • 网站开发开题报告范文2019seo人才
  • 找个网站懂的网站百度注册入口
  • 深圳专业网站建设平台百度搜索资源平台
  • 建设摩托车官方旗舰店微信小程序排名关键词优化
  • 做品牌文化的网站淘宝关键词
  • 上海网站制作公司有哪些武汉百捷集团百度推广服务有限公司
  • 毕业论文网站建设前分析搜索引擎营销的实现方法有哪些
  • 哪个网站建站好设计网站排名
  • 吉林省交通建设集团有限公司网站百度指数官网
  • 整站优化推广品牌大数据免费查询平台
  • 网站建设宣传语信息流广告优化师
  • NextApp wordpress公众号排名优化软件
  • 网站一天要发多少外链长春网站seo公司
  • 定制高端网站建设服务商百度推广客户端