介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们实现双链表的Peek。实现peek根据我们在之前实现单链表的经验,我们很容易想到我们的peek函数怎么实现,如下: pub fn peek_front(&self) ......
276
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容pop front上一节,我们给双链表实现了new和push front方法,本节我们实现pop front,代码如下: pub fn pop_front(&mut sel ......
285
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容在上一节我们定义了我们的双链表,本节我们来给双链表创建new函数和pushfront函数。newimpl<T> Node<T> { fn new(ele ......
254
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节开始,我们将设计一个安全的双端队列。双端队列的布局我们主要使用到Rc和RefCell。RcRc: 通过Rc指针可以共享数据。Rust语言因为有所有权的概念,所以,数据失去了所有权之后 ......
284
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们实现可持久化链表的Drop。我们在之前实现可变链表的Drop的时候,我们是使用循环来进行回收的。这里我们如果采用统一的方法,是行不通的,因为我们此处通过Rc进行共享,必须等待引用 ......
293
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们就在上一节定义的链表的基础上来实现链表的通用函数。因为本章的链表更多的操作链表的头尾和尾,所以我们在通用函数中不提供push和pop,而是提供append和tail函数。appe ......
219
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容在之前我们已经实现了一个单链表,从这节开始,我们将实现一个持久化的单链表。通过持久化的单链表,可以让其他人来共享使用链表的数据。布局考虑如下例子:list1 = A -> B -& ......
236
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们为链表实现IterMut,既可以对元素进行可变引用的迭代器。iter_mut实现的代码如下://实现IterMut pub struct IterMut<'a, T&gt ......
272
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们为链表实现Iter,Iter主要是对元素的引用,因此本部分内容涉及到的Rust的知识点主要是生命周期。关于生命周期相关的知识点请看B站Rust进阶部分的讲解。Iter代码如下:/ ......
272
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们为链表实现迭代器。迭代器Trait的定义如下:pub trait Iterator { type Item; fn next(&mut self) - ......
252
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容在之前的链表实现中,我们没有实现获取表头元素的peek方法,本节尝试去实现它。peek根据我们之前学习的知识,可以快速的写出代码如下: pub fn peek(&self) ......
220
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们让我们的链表支持泛型。首先修改我们的定义如下:pub struct List<T> { head: Link<T>, } type Li ......
234
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容在之前的章节中,我们实现了一个最小的可运行的单链表,然而这仅仅只是一个最小的可运行的链表。从本节开始,我们将创建一个更加完善的链表,这个链表能处理任何类型的元素,并且支持迭代器。使用Op ......
209
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们为链表实现Drop函数。按照我们常规的方式,我们可能的实现方式如下:impl Drop for List { fn drop(&mut self) {// NO ......
189
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容上一节我们已经完成了链表的基本功能。本节就对上一节的例子进行测试。步骤如下:cargo new mylist --lib 在mylist/src/lib.rs中写入如下代码:use s ......
173
0
0
2022-04-30