尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
rust数据结构
Rust 的数据结构体系非常丰富从基础类型到标准库集合再到自定义结构覆盖了系统编程的方方面面。以下是核心分类一、标量类型Scalar Types表格类型说明示例i8/i16/i32/i64/i128/isize有符号整数let a: i32 42;u8/u16/u32/u64/u128/usize无符号整数let b: u8 255;f32/f64浮点数let c 3.14;默认 f64bool布尔值let d true;charUnicode 标量值4 字节let e 中;二、复合类型Compound Types1. 元组Tuplerustlet tup: (i32, f64, str) (500, 6.4, hi); let (x, y, z) tup; // 解构 let first tup.0; // 索引访问2. 数组Arrayrustlet arr [1, 2, 3, 4, 5]; let first arr[0]; let zeros [0; 5]; // [0, 0, 0, 0, 0] // 长度固定栈上分配三、标准库集合Collections表格结构特点常用场景VecT动态数组连续内存可变长列表StringUTF-8 可变字符串文本处理HashMapK, V哈希表O(1) 平均查找键值存储BTreeMapK, V有序键值对基于 B 树需要排序时HashSetT/BTreeSetT集合去重成员判断、交集并集VecDequeT双端队列两端频繁操作LinkedListT双向链表频繁中间插入删除BinaryHeapT最大堆优先队列rustuse std::collections::{HashMap, VecDeque, HashSet}; let mut v vec![1, 2, 3]; v.push(4); let mut map HashMap::new(); map.insert(key, value); let mut set HashSet::new(); set.insert(42);四、自定义数据结构1. 结构体Structrust// 命名字段 struct User { name: String, age: u32, } // 元组结构体 struct Point(f64, f64); // 单元结构体零大小类型 struct Marker;2. 枚举Enum—— Rust 的代数数据类型rustenum Message { Quit, // 无数据 Move { x: i32, y: i32 }, // 匿名结构体 Write(String), // 单个值 ChangeColor(i32, i32, i32), // 元组 } // 最经典的Option 和 Result enum OptionT { Some(T), None, } enum ResultT, E { Ok(T), Err(E), }五、智能指针与所有权相关表格类型所有权模型用途BoxT堆分配单所有权递归类型、大对象转移RcT引用计数多所有权单线程共享只读数据ArcT原子引用计数多线程跨线程共享RefCellT运行时借用检查单线程内部可变性MutexT/RwLockT线程安全内部可变性跨线程可变共享rustuse std::rc::Rc; use std::sync::Arc; use std::cell::RefCell; let boxed Box::new(5); let shared Rc::new(vec![1, 2, 3]); let cell RefCell::new(5); *cell.borrow_mut() 10;六、特殊类型表格类型说明T/mut T引用借用*const T/*mut T裸指针unsafefn(T) - U函数指针!(Never type)发散类型永不返回()(Unit type)空元组类似 void七、常用 trait 约束Rust 数据结构的能力常通过trait表达表格Trait能力Clone显式深拷贝.clone()Copy隐式按位复制仅栈上简单类型Debug格式化输出{:?}Display格式化输出{}PartialEq/Eq相等比较PartialOrd/Ord大小比较Hash哈希计算Default默认值Send/Sync线程安全标记rust#[derive(Debug, Clone, PartialEq)] struct Point { x: i32, y: i32, }总结对比图plain标量 ──→ 整数、浮点、bool、char │ 复合 ──→ 元组(T,)、数组[T; N] │ 集合 ──→ Vec、String、HashMap、HashSet、VecDeque... │ 自定义 ─→ struct、enum │ 智能指针 → Box、Rc、Arc、RefCell、Mutex...需要我深入讲解某个具体数据结构比如Vec的内存布局、HashMap的实现原理、或者如何设计一个自定义的链表吗
RELATED

相关推荐

深入解析内存屏障:mfence、lfence、sfence指令原理与应用

深入解析内存屏障:mfence、lfence、sfence指令原理与应用

1. 内存屏障:程序世界里的“交通警察”如果你写过并发程序,或者对CPU底层执行模型有过好奇,那么“内存屏障”这个词你一定不陌生。它听起来很底层,甚至有点晦涩,但理解它,是写出正确、高效多线程代码的关键…

📅 2026/9/8 13:30:45
一周拆一家公司|德明利:半年净利57亿—65亿,存储涨价之外,它靠什么?

一周拆一家公司|德明利:半年净利57亿—65亿,存储涨价之外,它靠什么?

一、背景:从主控设计到模组整合的一条路径在国产存储赛道,大部分厂商的路径是采购主控采购NAND封测组装,核心差异体现在品牌和渠道。德明利选择了一条略有不同的路——从存储主控芯片设计出发,向下延伸到模组、嵌入式存储和企业级…

📅 2026/10/8 4:00:11
Maven配置深度解析:从settings.xml到企业级最佳实践

Maven配置深度解析:从settings.xml到企业级最佳实践

1. 项目概述&#xff1a;为什么你的Maven配置总是不对劲&#xff1f;如果你刚接触Java开发&#xff0c;或者从别的构建工具转过来&#xff0c;第一次打开Maven的settings.xml配置文件&#xff0c;大概率会有点懵。这个文件里一堆标签&#xff0c;什么<mirrors>、<prof…

📅 2026/10/6 3:16:14
MORE NEWS

更多资讯

📰

扩散模型局部风格控制:实现内容保真与风格注入的精准解耦

1. 项目概述&#xff1a;让AI画图真正听懂“我要什么风格”的底层突破最近在好几个图像生成社区里&#xff0c;看到不少同行反复提到一个词&#xff1a;“Local Content-Style Control”——不是泛泛而谈的“整体换风格”&#xff0c;而是在一张图里&#xff0c;让天空变成水彩…

📰

STM32综合测评B类题固件:ADC/DMA采样、校准与PID闭环

简介&#xff1a;面向备战全国大学生电子设计竞赛综合测评的嵌入式选手&#xff0c;这份2023年B题国一方案围绕同轴电缆长度与终端负载检测装置展开&#xff0c;主控采用梁山派开发板&#xff0c;开发链为STM32CubeMX、CLion与OpenOCD。方案给出TDR时域反射法测长&#xff08;误…

📰

分布式计算核心技术解析与大数据实践

1. 分布式计算在大数据领域的核心价值 2008年我第一次接触Hadoop集群时&#xff0c;单台服务器处理TB级数据需要72小时&#xff0c;而8节点集群仅用3小时就完成了相同工作。这种指数级的效率提升正是分布式计算的核心价值所在。如今随着数据量爆炸式增长&#xff0c;单机处理能…

📰

全双工语音模型的话轮控制:解决AI抢话与冷场问题

1. 项目概述&#xff1a;当两个“全双工”语音模型开始“抢话”与“让话” “Coupled but Late: Turn-Taking Between Full-Duplex Speech Models in Unscripted Dialogue”——这个标题初看像一篇冷门的计算语言学论文&#xff0c;但拆开来看&#xff0c;它直指当前语音AI落地…

📰

多模型共识机制提升教育AI诊断准确率

1. 项目概述&#xff1a;当多个大模型“坐在一起”诊断学生数学学习卡点 你有没有遇到过这种情况&#xff1a;学生在解一道分数加减法题时反复出错&#xff0c;辅导老师看了几遍对话记录&#xff0c;觉得是通分规则没掌握&#xff1b;但换个老师看&#xff0c;却认为问题出在符…

📰

Diagram设计不是画图,而是结构化建模思维

1. 项目概述&#xff1a;这不是画图&#xff0c;是用结构语言思考问题“diagram-design”这个词组乍看像一个工具名或软件功能&#xff0c;但在我带过的十几个跨领域项目里&#xff0c;它从来不是指“用PPT拉几个箭头”&#xff0c;而是一套把模糊想法翻译成可验证、可协作、可…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬