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

做服装搭配直接售卖的网站申请免费网站多少钱

做服装搭配直接售卖的网站,申请免费网站多少钱,前端开发培训费用是多少,什么是网络营销?请举几个例子说明数据结构与算法-Rust 版读书笔记-2线性数据结构-队列 1、队列#xff1a;先进先出 队列是项的有序集合#xff0c;其中#xff0c;添加新项的一端称为队尾#xff0c;移除项的另一端称为队首。一个元素在从队尾进入队列后#xff0c;就会一直向队首移动#xff0c;直到…数据结构与算法-Rust 版读书笔记-2线性数据结构-队列 1、队列先进先出 队列是项的有序集合其中添加新项的一端称为队尾移除项的另一端称为队首。一个元素在从队尾进入队列后就会一直向队首移动直到它成为下一个需要移除的元素为止。 2、Rust 预备知识 1、Some rust为了处理情况设置的两个枚举类型分别是enum Option 和enum Result。 Option的枚举情况有两种分别是代表有的Some()和代表无的None。 如果是有返回值则可以通过if letmatchunwrap等多种方法对应情况取出Some包裹的值如果没有则是None。 Result的枚举情况也是有两种表示正确的Ok()和表示错误的Err()。同样也是matchunwrap等等对应方法去提取。分别提取对应情况的内容。 3、队列的 Rust 代码实现、运行结果 queue.rs /** Description: * Author: tianyw* Date: 2023-12-10 17:43:34* LastEditTime: 2023-12-11 21:46:30* LastEditors: tianyw*/ // 定义队列 #[derive(Debug)] // Debug 是派生宏的名称此语句为 Queue 结构体实现了 Debug traitpub struct QueueT { // pub 表示公开的cap: usize, // 容量data: VecT, // 数据容器 }implT QueueT { // impl 用于定义类型的实现如实现 new 方法、is_empty 方法等// 初始化空栈pub fn new(size: usize) - Self { // 指代 Queue 类型Self {cap: size,data:Vec::with_capacity(size)}}pub fn is_empty(self) - bool {0 Self::len(self)}pub fn is_full(self) - bool {self.len() self.cap}pub fn len(self) - usize { // self 只可读self.data.len()}// 清空pub fn clear(mut self) { // mut self 可读、可写self.data Vec::with_capacity(self.cap)}// 判断是否有剩余空间如果有的话就将数据添加到队列中pub fn enquue(mut self, val: T) - Result(), String {if self.len() self.cap {return Err(No space available.to_string());}self.data.insert(0, val);Ok(())}// 数据出队pub fn dequeue(mut self) - OptionT {if self.len() 0 {self.data.pop()}else {None}}// 以下是为队列实现的迭代功能// into_iter队列改变成为迭代器// iter: 队列不变得到不可变迭代器// iter_mut: 队列不变得到可变迭代器pub fn into_iter(self) - IntoIterT {IntoIter(self)}pub fn iter(self) - IterT {let mut iterator Iter { stack: Vec::new() };for item in self.data.iter() {iterator.stack.push(item);}iterator}pub fn iter_mut(mut self) - IterMutT {let mut iterator IterMut { stack: Vec::new() };for item in self.data.iter_mut() {iterator.stack.push(item);}iterator}}// 实现三种迭代功能 pub struct IntoIterT(QueueT); implT:Clone Iterator for IntoIterT {type Item T;fn next(mut self) - OptionSelf::Item {if !self.0.is_empty() {Some(self.0.data.remove(0))} else {None}} }pub struct Itera,T:a { stack: Veca T, } impla,T Iterator for Itera,T {type Item a T;fn next(mut self) - OptionSelf::Item {if 0 ! self.stack.len() {Some(self.stack.remove(0)) // 索引移除}else {None}} }pub struct IterMuta,T:a { stack: Veca mut T } impla,T Iterator for IterMuta,T {type Item a mut T;fn next(mut self) - OptionSelf::Item {if 0 ! self.stack.len() {Some(self.stack.remove(0))}else {None}} } main.rs /** Description: * Author: tianyw* Date: 2023-12-11 21:29:04* LastEditTime: 2023-12-11 21:54:22* LastEditors: tianyw*/mod queue; fn main() {basic();iter();fn basic() {let mut q queue::Queue::new(4);let _r1 q.enquue(1);let _r2 q.enquue(2);let _r3 q.enquue(3);let _r4 q.enquue(4); // 入队if let Err(error) q.enquue(5) {println!(Enqueue error:{error})}if let Some(data) q.dequeue() { // 出队println!(dequeue data: {data});}else {println!(empty queue);}println!(empty: {}, len: {}, q.is_empty(),q.len());println!(full: {},q.is_full());println!(q: {:?},q);q.clear();println!({:?},q);}fn iter() {let mut q queue::Queue::new(4);let _r1 q.enquue(1);let _r2 q.enquue(2);let _r3 q.enquue(3);let _r4 q.enquue(4);let sum1 q.iter().sum::i32();let mut addend 0;for item in q.iter_mut() {*item 1;addend 1;}let sum2 q.iter().sum::i32(); // vec 的 sum 方法println!({sum1} {addend} {sum2});println!(sum {},q.into_iter().sum::i32())} } cargo run 运行结果 队列的典型应用是模拟以FIFO方式管理数据的真实场景。 应用烫手山芋游戏 // hot_potato.rsfn hot_potato(names: Vecstr, num: usize) - str {// 初始化队列将人名入队let mut q Queue::new(names.len());for name in names { let _nm q.enqueue(name); }while q.size() 1 {// 出入栈中的人名相当于传递山芋for _i in 0..num {let name q.dequeue().unwrap();let _rm q.enqueue(name);}// 出入栈达到num次删除一个人名let _rm q.dequeue();}q.dequeue().unwrap() }fn main() {let name vec![Mon,Tom,Kew,Lisa,Marry,Bob];let survivor hot_potato(name, 8);println!(The survival person is {survivor});// 输出“The survival person is Marry” }注意在上面的实现中计数值8大于队列中的人名数量6。但这不存在问题因为队列就像一个圈到了队尾就会重新回到队首直至达到计数值。
http://www.tj-hxxt.cn/news/234042.html

相关文章:

  • 网络 网站建设办公网站建设合同服务范围
  • 安徽建设工程实名制网站广西建设职业技术学院教育网站
  • 做网站需要的条件wordpress 文章
  • 做旅游攻略的网站step7用法fc州网站建设
  • 手机h5免费模板网站模板下载wordpress sticky_posts
  • 民族文化网站建设的作用WordPress和微信公众号
  • 外贸网站推广中山广州越秀区租房子多少钱一个月
  • 郑州网站关键263云通信企业邮箱
  • 网站如何做支付系统wordpress 简约企业
  • 杭州网站基建网站建设维护外包
  • 温州企业网站设计做那种网站受欢迎
  • 网站开发要什么样的环境企业门户网站的设计与实现
  • 杨凌做网站的九年级上册信息技术做网站
  • 网站建设的目标和需求wordpress改变底部logo
  • 做网站的软件 简单易学expedia电子商务网站建设
  • 南通优化网站怎么收费江西企业网站建设公司
  • 郑州网站关键字优化安徽网站建设微信开发
  • 商城在线专业的网站优化公司排名
  • 企业网站的建设规划葫岛百度seo
  • 做网页兼职网站有哪些省心的专业建设网站公司
  • 标准网站建设推荐app下载赚钱
  • 松江做移动网站设计个人主页模板下载
  • 公司flash网站模板Wordpress连接ftp用户名
  • 阿里云网站建设素材人社局劳务网站建设汇报
  • 南昌网站开发培训学校甜蜜高端定制网站
  • 物流网站建设哪个好wordpress侧边栏
  • 大型网站开发考试绿植租摆网站建设
  • 企业网站最底下做的是什么开网站流程
  • 微博营销平台seo排名优化软件有用
  • 企业网站域名注册网站安全维护怎么做