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

rust学习-LinkedList

介绍

A doubly-linked list with owned nodes.
自有节点的双向链表

pub struct LinkedList<T, A = Global>
whereA: Allocator,
{ /* private fields */ }

使用 Vec 或 VecDeque 几乎总是更好,因为基于数组的容器通常更快、内存效率更高,并且可以更好地利用 CPU 缓存

方法

// 初始化
pub const fn new() -> LinkedList<T, Global>// 追加
pub fn append(&mut self, other: &mut LinkedList<T, Global>)// 前向迭代
pub fn iter(&self) -> Iter<'_, T>
// Provides a forward iterator
pub fn iter_mut(&mut self) -> IterMut<'_, T>
// Provides a forward iterator with mutable references// 是否为空
pub fn is_empty(&self) -> bool// 长度
pub fn len(&self) -> usize// 移除所有元素
pub fn clear(&mut self)// 包含
pub fn contains(&self, x: &T) -> bool// 位置
pub fn front(&self) -> Option<&T>
pub fn front_mut(&mut self) -> Option<&mut T>
pub fn back(&self) -> Option<&T>
pub fn back_mut(&mut self) -> Option<&mut T>
pub fn push_front(&mut self, elt: T)
pub fn pop_front(&mut self) -> Option<T>
pub fn push_back(&mut self, elt: T)
pub fn pop_back(&mut self) -> Option<T>// 拆分
// 在给定索引处将列表分成两部分,返回给定索引之后的所有内容,包括索引
// 将一个链表分割为两个独立的链表。
// 该方法会从指定的位置将原链表拆分成两个链表,并返回新创建的链表
pub fn split_off(&mut self, at: usize) -> LinkedList<T, A>
whereA: Clone,

示例

use std::collections::LinkedList;fn main() {let mut list1 = LinkedList::new();assert!(list1.is_empty());assert_eq!(list1.len(), 0);list1.push_back('a');assert!(!list1.is_empty());assert_eq!(list1.len(), 1);assert_eq!(list1.contains(&'a'), true);assert_eq!(list1.contains(&'b'), false);let mut list2 = LinkedList::new();list2.push_back('b');list2.push_back('c');list1.append(&mut list2);let mut iter = list1.iter();assert_eq!(iter.next(
http://www.lryc.cn/news/213488.html

相关文章:

  • 搭上直播快车,文旅迎来了更大爆发期?
  • 【智能座舱系列】- 深度解密小米Hyper OS,华为HarmonyOS区别
  • kafka-consumer-groups.sh
  • 数据仓库-拉链表
  • 【Docker】一些可以直接用的Docker环境
  • Unity2D中瓦片地图的创建与绘制教程
  • 现代的简洁,诠释轻奢的精致!福州中宅装饰,福州装修
  • 运用ChatGPT辅助新手学习躺赢者PRO飞控二次开发示例(2023年10月28日)
  • 【Java】HashCode方法重写注意事项
  • 039-第三代软件开发-PDF阅读器
  • 计算机毕业设计选题推荐-跑腿平台微信小程序/安卓APP-项目实战
  • RocketMQ生产者消息发送出去了,消费者一直接收不到怎么办?(Rocket MQ订阅关系一致性)
  • 使用Golang开发硬件驱动
  • 设计模式(19)命令模式
  • QModelIndex 与QStandardItem相互转换
  • Linux - 进程地址空间
  • 系统架构设计师-第16章-嵌入式系统架构设计理论与实践-软考学习笔记
  • pod进阶
  • 系列四十七、Spring的事务传播行为案例演示(七)#NOT_SUPPORTED
  • 54.RabbitMQ快速实战以及核心概念详解
  • Qt TreeView 设置节点不可编辑
  • python django获取某个角色的某个数据和——例如:获取所有订单的应付金额总和
  • 如何在React项目中引用less
  • NUXT前端服务端渲染技术框架
  • 力扣每日一题90:子集
  • 「linux基础」上传代码到github/gitee
  • Hafnium总体考虑
  • C#__对Json文件的解析和序列化
  • 如果一定要在C++和JAVA中选择,是C++还是java?
  • 如何运行深度学习项目代码