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

阿里云服务器搭建wordpress惠州seo排名收费

阿里云服务器搭建wordpress,惠州seo排名收费,福州学做网站,家居网站建设的需求分析文章目录 一、Map类型1.HashMaphashMap的简单插入entry().or_insert()更新hashMap 2.什么时候用HashMap3.HashMap中的键 二、BTreeMap1.什么时候用BTreeMap2.BTreeMap中的键 参考 一、Map类型 键值对数据又称字典数据类型 主要有两种 HashMap - BTreeMap 1.HashMap HashM… 文章目录 一、Map类型1.HashMaphashMap的简单插入entry().or_insert()更新hashMap 2.什么时候用HashMap3.HashMap中的键 二、BTreeMap1.什么时候用BTreeMap2.BTreeMap中的键 参考 一、Map类型 ·键值对数据又称字典数据类型 ·主要有两种 · HashMap ·- BTreeMap 1.HashMap ·HashMapK,V类型储存了一个键类型K对应一个值类型V的映射。它通过一个 哈希函数hashing function来实现映射决定如何将键和值放入内存中。 ·HashMap的数据和Vec一样在heap上 hashMap的简单插入 #![allow(unused)] fn main() {use std::collections::HashMap;let mut scores HashMap::new();scores.insert(String::from(Blue), 10);scores.insert(String::from(Yellow), 50);for (key, value) in scores {println!({}: {}, key, value);} }  cargo runCompiling abc v0.1.0 (/home/wangji/installer/rust/bobo/abc)Finished dev profile [unoptimized debuginfo] target(s) in 0.91sRunning target/debug/abc Yellow: 50 Blue: 10entry().or_insert()更新hashMap 直接覆盖 #![allow(unused)] fn main() { use std::collections::HashMap;let mut scores HashMap::new();scores.insert(String::from(Blue), 10); scores.insert(String::from(Blue), 25);println!({:?}, scores); }or_insert在没有key的情况下才插入 #![allow(unused)] fn main() {use std::collections::HashMap;let mut scores HashMap::new();scores.insert(String::from(Blue), 10);scores.entry(String::from(Yellow)).or_insert(50);scores.entry(String::from(Blue)).or_insert(50);println!({:?}, scores); }  cargo runBlocking waiting for file lock on package cacheBlocking waiting for file lock on package cacheCompiling abc v0.1.0 (/home/wangji/installer/rust/bobo/abc)Finished dev profile [unoptimized debuginfo] target(s) in 13.96sRunning target/debug/abc {Blue: 10, Yellow: 50}or_inser根据旧值更新一个值会返回插入的pair的value的引用 #![allow(unused)] fn main() {use std::collections::HashMap;let text hello world wonderful world;let mut map HashMap::new();for word in text.split_whitespace() {let count map.entry(word).or_insert(0);*count 1;}println!({:?}, map); }  cargo runFinished dev profile [unoptimized debuginfo] target(s) in 0.00sRunning target/debug/abc {hello: 1, wonderful: 1, world: 2}2.什么时候用HashMap ·仅次于Vec的常用数据类型 ·存储数据为键值对类型 需要查找的速度 in-memory cache 3.HashMap中的键 ·因为要满足哈希函数所以HashMap对键有特殊要求 ·实现Hash、Eq、PartialEq ·一般结构体 #[derive(Debug, PartialEq, Hash, Eq)] use std::collections::HashMap;// Hash Eq PartialEq #[derive(Debug, Clone, PartialEq, Eq, Hash)] struct Car {id: i32,price: i32, }fn main() {let _int_map: HashMapi32, i32 HashMap::new();let _int_map: HashMapi32, i32 HashMap::with_capacity(10);// 通过数组来创建maplet mut car_map HashMap::from([(Car1,Car {id: 1,price: 10000,},),(Car2, Car { id: 2, price: 4000 }),(Car3,Car {id: 3,price: 890000,},),]);// 打印实际是无序的for (k, v) in car_map {println!({k}:{:?}, v);}// getprintln!(Some {:?}, car_map.get(Car1));println!(None {:?}, car_map.get(Car6));// 覆盖性插入insertcar_map.insert(Car4,Car {id: 4,price: 80000,},);println!({:?}, car_map);car_map.insert(Car4,Car {id: 5,price: 300000,},);println!({:?}, car_map);// 只在键没有时插入// Entrycar_map.entry(Car4).or_insert(Car { id: 9, price: 9000 });println!({:?}, car_map);// removecar_map.remove(Car4);println!({:?}, car_map);car_map.entry(Car4).or_insert(Car { id: 9, price: 9000 });println!({:?}, car_map);// 加上注释PartialEq, Eq, Hashlet mut car_map HashMap::from([(Car {id: 1,price: 10000,},Car1,),(Car { id: 2, price: 4000 }, Car2),(Car {id: 3,price: 890000,},Car3,),]);println!(Car2: {:?}\n,car_map.get(Car {id: 1,price: 10000}));for (car, name) in car_map {println!({:?}: {name}, car)}// Filter会原地修改mapcar_map.retain(|c, _| c.price 5000);println!( 4000 {:?}, car_map); } 编译及运行  cargo runBlocking waiting for file lock on build directoryCompiling data_struct v0.1.0 (/home/wangji/installer/rust/data_struct/data_struct)Finished dev profile [unoptimized debuginfo] target(s) in 13.52sRunning target/debug/data_struct Car1:Car { id: 1, price: 10000 } Car3:Car { id: 3, price: 890000 } Car2:Car { id: 2, price: 4000 } Some Some(Car { id: 1, price: 10000 }) None None {Car4: Car { id: 4, price: 80000 }, Car2: Car { id: 2, price: 4000 }, Car1: Car { id: 1, price: 10000 }, Car3: Car { id: 3, price: 890000 }} {Car4: Car { id: 5, price: 300000 }, Car2: Car { id: 2, price: 4000 }, Car1: Car { id: 1, price: 10000 }, Car3: Car { id: 3, price: 890000 }} {Car4: Car { id: 5, price: 300000 }, Car2: Car { id: 2, price: 4000 }, Car1: Car { id: 1, price: 10000 }, Car3: Car { id: 3, price: 890000 }} {Car2: Car { id: 2, price: 4000 }, Car1: Car { id: 1, price: 10000 }, Car3: Car { id: 3, price: 890000 }} {Car4: Car { id: 9, price: 9000 }, Car2: Car { id: 2, price: 4000 }, Car1: Car { id: 1, price: 10000 }, Car3: Car { id: 3, price: 890000 }} Car2: Some(Car1)Car { id: 3, price: 890000 }: Car3 Car { id: 1, price: 10000 }: Car1 Car { id: 2, price: 4000 }: Car24000 {Car { id: 2, price: 4000 }: Car2}二、BTreeMap map的有序形式 内部基于BTree创建 1.什么时候用BTreeMap ·当你需要有序map时 ·当你查找时有序可以提供你的性能 (比如二分查找法) ·注意有序是有代价的 ·BTreeMap缓存效率和搜索中进行了折衷 2.BTreeMap中的键 ·因为需要对键值排序所以需要Key实现 OrdPartialOrd use std::collections::BTreeMap;// Hash Eq PartialEq #[derive(Debug, Clone, PartialEq, Eq, Hash)] struct Car {id: i32,price: i32, }impl Ord for Car {fn cmp(self, other: Self) - std::cmp::Ordering {self.price.cmp(other.price)} }impl PartialOrd for Car {fn partial_cmp(self, other: Self) - Optionstd::cmp::Ordering {Some(self.price.cmp(other.price))} }fn main() {let _int_map: BTreeMapi32, i32 BTreeMap::new();// let _int_map:BTreeMapi32, i32 BTreeMap::with_capacity(10);// 通过数组来创建maplet mut car_map BTreeMap::from([(Car1,Car {id: 1,price: 10000,},),(Car2, Car { id: 2, price: 4000 }),(Car3,Car {id: 3,price: 890000,},),]);println!({:#?}, car_map);println!(------------------------);let mut car_map BTreeMap::from([(Car {id: 1,price: 10000,},1,),(Car { id: 2, price: 4000 }, 2),(Car {id: 3,price: 890000,},3,),]);for (k, v) in car_map {println!({:?}: {v}, k);}println!(----------------------);car_map.insert(Car {id: 4,price: 90000,},4,);for (k, v) in car_map {println!({:?}: {v}, k);}println!(----------------------);println!({:?},car_map.get(Car {id: 1,price: 10000}));println!({:?}, car_map.first_key_value());println!({:?}, car_map.last_key_value());println!(----------------------);// removelet car car_map.pop_first().unwrap();println!({:?}, car);let car car_map.pop_last().unwrap();println!({:?}, car);println!(----------------------);for (k, v) in car_map {println!({:?}: {v}, k);}println!(----------------------);// remove(index)不建议你用car_map.remove(Car {id: 1,price: 10000,});for (k, v) in car_map {println!({:?}: {v}, k);}println!(----------------------);car_map.clear();println!({}, car_map.is_empty()); } 编译及运行  cargo runCompiling data_struct v0.1.0 (/home/wangji/installer/rust/data_struct/data_struct) warning: variable does not need to be mutable-- src/main.rs:27:9| 27 | let mut car_map BTreeMap::from([| ----^^^^^^^| || help: remove this mut| note: #[warn(unused_mut)] on by defaultwarning: data_struct (bin data_struct) generated 1 warning (run cargo fix --bin data_struct to apply 1 suggestion)Finished dev profile [unoptimized debuginfo] target(s) in 6.51sRunning target/debug/data_struct {Car1: Car {id: 1,price: 10000,},Car2: Car {id: 2,price: 4000,},Car3: Car {id: 3,price: 890000,}, } ------------------------ Car { id: 2, price: 4000 }: 2 Car { id: 1, price: 10000 }: 1 Car { id: 3, price: 890000 }: 3 ---------------------- Car { id: 2, price: 4000 }: 2 Car { id: 1, price: 10000 }: 1 Car { id: 4, price: 90000 }: 4 Car { id: 3, price: 890000 }: 3 ---------------------- Some(1) Some((Car { id: 2, price: 4000 }, 2)) Some((Car { id: 3, price: 890000 }, 3)) ---------------------- (Car { id: 2, price: 4000 }, 2) (Car { id: 3, price: 890000 }, 3) ---------------------- Car { id: 1, price: 10000 }: 1 Car { id: 4, price: 90000 }: 4 ---------------------- Car { id: 4, price: 90000 }: 4 ---------------------- true参考 Rust常用数据结构教程
http://www.hkea.cn/news/14581747/

相关文章:

  • 网站建设在电子商务中的作用怎样买空间做网站
  • 网站源码绑定域名处理网络推广方法
  • 协同办公oa福州seo网站建设
  • 阿里建设网站建筑人才网筑才网
  • 制作投票网站怎样建设打字网站
  • 代做网站排名wordpress搜索字段
  • 学校门户网站是什么意思河南工程建设交易信息网
  • 旅游网站建设ppt模板下载潍坊专业网站建设最新报价
  • 铜陵市建设局网站做网站域名的设置
  • 昆明网站建设方案托管上海网页设计公司名单
  • 专门做单页的网站食品包装设计风格
  • 新乡 网站开发招商码头无忧查询系统
  • 网站管理系统有哪些网站建设不备案后果
  • 北京高端网站制作做qq链接的网站
  • 石景山 网站建设设计页面尺寸图
  • 广东省建设网站天津票网网站
  • 惠州网站建设哪家好深圳免费建站
  • 网站色彩的搭配原则有哪些潍坊网站建设潍坊
  • 阿里云做视频网站温州乐清哪里有网络公司
  • 北京哪家网站建设好汉口企业制作网站的
  • 贵阳市建设局网站网站建设可行性分析
  • 做网站赚钱还是企业宣传片wap网站模板
  • 伊春市住房和城乡建设局网站免费引流推广的方法
  • 中国建设银行官网站企业网银通付盾 公司网站建设
  • 网站开发 需要用到什么软件有哪些基于p2p的网站建设
  • 做网站需要注册商标吗大秀平台app下载
  • 中小型网站建设与管理 唐军民长春市长春网站建设网
  • 物流网站建设工作岗位WordPress 转发文章 配图怎么办
  • 九台区建设银行网站网站建设模板型和定制型
  • 天津网站制作重点有哪些做ppt的网站