 Hello 算法 1.2.0 简体中文 Rust 版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 387 页 | 18.51 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Rust 版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 387 页 | 18.51 MB | 10 月前3
 Hello 算法 1.0.0 Rust版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 第 0 章 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 3 章 数据结构 51 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型0 码力 | 383 页 | 17.61 MB | 1 年前3 Hello 算法 1.0.0 Rust版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 第 0 章 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 3 章 数据结构 51 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型0 码力 | 383 页 | 17.61 MB | 1 年前3
 Hello 算法 1.1.0 Rust版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 388 页 | 18.50 MB | 1 年前3
 Rust并行编译的挑战与突破一些常见线程安全数据结构 常用Rust并行并发库 Rust并行并发 增加程序复杂度 线程安全数据结构造成效率损失 Mutex与RwLock rustc profileing 数据 · 代码复杂度及健壮性 · benchmark资源限制 · profileing成本 ... 收益 > 代价? Rust并行编译的挑战与突破 挑战:消减共享数据结构效率损失 共享数据结构的性能损耗问题 共享数据结构的性能损耗问题 基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失 Specailization —— 基于GAT的共享数据结构实现 接口 入口 非共享 数据结构 共享 数据结构 接口 实现 接口 实现 执行结果 同一份代码 线程数为1 线程数大于1 同一份代码 缺点:业务代码带有泛型参数 挑战:消减共享数据结构效率损失 动态线程安全检查 ... thread1 thread2 thread3 thread4 ... Allocator get_thread_id() 多线程内存分配器,线程分而治之 WorkerLocal数据结构设计 挑战:缓存系统访问热点效率瓶颈 thread1 thread2 thread3 threadN ... 多线程调用查询 type_of typeck borrow_ck impl_trait0 码力 | 25 页 | 4.60 MB | 1 年前3 Rust并行编译的挑战与突破一些常见线程安全数据结构 常用Rust并行并发库 Rust并行并发 增加程序复杂度 线程安全数据结构造成效率损失 Mutex与RwLock rustc profileing 数据 · 代码复杂度及健壮性 · benchmark资源限制 · profileing成本 ... 收益 > 代价? Rust并行编译的挑战与突破 挑战:消减共享数据结构效率损失 共享数据结构的性能损耗问题 共享数据结构的性能损耗问题 基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失 Specailization —— 基于GAT的共享数据结构实现 接口 入口 非共享 数据结构 共享 数据结构 接口 实现 接口 实现 执行结果 同一份代码 线程数为1 线程数大于1 同一份代码 缺点:业务代码带有泛型参数 挑战:消减共享数据结构效率损失 动态线程安全检查 ... thread1 thread2 thread3 thread4 ... Allocator get_thread_id() 多线程内存分配器,线程分而治之 WorkerLocal数据结构设计 挑战:缓存系统访问热点效率瓶颈 thread1 thread2 thread3 threadN ... 多线程调用查询 type_of typeck borrow_ck impl_trait0 码力 | 25 页 | 4.60 MB | 1 年前3
 Rust与算法 - 谢波…………………………………………………………………………… …………………………….. 1 6 11 15 21 • 背景介绍 • 算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 写作本书给我的启示 基础、排序、查找、树、图 代码框、颜色、图片绘制均由 Latex 完成 可参考点 为什么 为什么讲这个话题? 为什么要讲数据结构和算法两部分? 算法相关知识 算法相关知识 • 抽象数据类型 • 时空复杂度 • 复杂度计算 • 基本数据结构复杂度 抽象数据类型 什么是抽象数据类型? 为什么需要抽象数据类型? 时空复杂度 • 时间复杂度更被看重 • 时间和空间复杂度不是对立的,可以协同 时间和空间复杂度不是对立的,可以协同 时间和空间复杂度 复杂度计算 • 大O标记法(数量级近似) • 用 AI 来估计 算步骤、算存储 Rust 基本数据结构复杂度 线性数据结构 非线性数据结构 总体来看,时间复杂度没有超过 O(n) 的! Rust 实现数据结构 • 栈 • 链表 • Vec Rust 实现数据结 构 栈 借助 Vec 容器 泛型支持 Option ? 链表 链接可能为空0 码力 | 28 页 | 3.52 MB | 1 年前3 Rust与算法 - 谢波…………………………………………………………………………… …………………………….. 1 6 11 15 21 • 背景介绍 • 算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 写作本书给我的启示 基础、排序、查找、树、图 代码框、颜色、图片绘制均由 Latex 完成 可参考点 为什么 为什么讲这个话题? 为什么要讲数据结构和算法两部分? 算法相关知识 算法相关知识 • 抽象数据类型 • 时空复杂度 • 复杂度计算 • 基本数据结构复杂度 抽象数据类型 什么是抽象数据类型? 为什么需要抽象数据类型? 时空复杂度 • 时间复杂度更被看重 • 时间和空间复杂度不是对立的,可以协同 时间和空间复杂度不是对立的,可以协同 时间和空间复杂度 复杂度计算 • 大O标记法(数量级近似) • 用 AI 来估计 算步骤、算存储 Rust 基本数据结构复杂度 线性数据结构 非线性数据结构 总体来看,时间复杂度没有超过 O(n) 的! Rust 实现数据结构 • 栈 • 链表 • Vec Rust 实现数据结 构 栈 借助 Vec 容器 泛型支持 Option ? 链表 链接可能为空0 码力 | 28 页 | 3.52 MB | 1 年前3
 Rust算法教程 The Algos (algorithms)Algos算法教程 Rust作为⼀⻔现代化的系统编程语⾔,拥有与C/C++类似的性能,同时⼜能做⾮常底层的性能优 化,因此⾮常适合写算法和leetcode。 Algos 算法教程涵盖了各种常⽤算法和数据结构的代码实现,以及leetcode题解,同时对于相关算 法还提供了中⽂⽂档和注释,可以帮助⼤家更好、更快的学习。 关于算法 算法,⼀个⾼⼤上的词汇,在计算机领域也绝对是凡⼈的禁忌,但是其实算法⼜没那么神秘,我们 course.rs/print.html 220/270 数据结构 数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据 元素的集合。通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。数据结构往往 同⾼效的检索算法和索引技术有关 在计算机科学的发展过程中,数据结构也随之发展。程序设计中常⽤的数据结构包括如下⼏个。 1. 数组(Array) 数组是⼀种 数组是⼀种聚合数据类型,它是将具有相同类型的若⼲变量有序地组织在⼀起的 集合。数组可以说是最基本的数据结构,在各种编程语⾔中都有对应。⼀个数组可以分解为 多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、 指针数组和结构数组等。数组还可以有⼀维、⼆维以及多维等表现形式。 2. 栈( Stack) 栈是⼀种特殊的线性表,它只能在⼀个表的⼀个固定端进⾏数据结点的插⼊和删 除操0 码力 | 270 页 | 8.46 MB | 1 年前3 Rust算法教程 The Algos (algorithms)Algos算法教程 Rust作为⼀⻔现代化的系统编程语⾔,拥有与C/C++类似的性能,同时⼜能做⾮常底层的性能优 化,因此⾮常适合写算法和leetcode。 Algos 算法教程涵盖了各种常⽤算法和数据结构的代码实现,以及leetcode题解,同时对于相关算 法还提供了中⽂⽂档和注释,可以帮助⼤家更好、更快的学习。 关于算法 算法,⼀个⾼⼤上的词汇,在计算机领域也绝对是凡⼈的禁忌,但是其实算法⼜没那么神秘,我们 course.rs/print.html 220/270 数据结构 数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据 元素的集合。通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。数据结构往往 同⾼效的检索算法和索引技术有关 在计算机科学的发展过程中,数据结构也随之发展。程序设计中常⽤的数据结构包括如下⼏个。 1. 数组(Array) 数组是⼀种 数组是⼀种聚合数据类型,它是将具有相同类型的若⼲变量有序地组织在⼀起的 集合。数组可以说是最基本的数据结构,在各种编程语⾔中都有对应。⼀个数组可以分解为 多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、 指针数组和结构数组等。数组还可以有⼀维、⼆维以及多维等表现形式。 2. 栈( Stack) 栈是⼀种特殊的线性表,它只能在⼀个表的⼀个固定端进⾏数据结点的插⼊和删 除操0 码力 | 270 页 | 8.46 MB | 1 年前3
 Rust 语言学习笔记面向对象编程 ............................................................................... 43 4.1 面向对象数据结构 ........................................................................ 43 4.1.1 元祖 .......... 其他无论在函数还是在 struct 中,甚至在 enum 中,Lifetime 理论知识都是一 样的。希望大家可以慢慢体会和吸收,做到举一反三。 第四章 面向对象编程 4.1 面向对象数据结构 4.1.1 元祖 元祖表示一个大小、类型固定的有序数据组。 let y = (2, "hello world"); let x: (i32, &str) = (3, "world hello"); 不能适应所有 的场景。 首先,所有的编程语言都需要跟外部的“不安全”接口打交道,调用 外部库等,在“安全”的 Rust 下是无法实现的; 其次,“安全”的 Rust 无法 高效表示复杂的数据结构,特别是数据结构内部有各种指针互相引用的时候; 再次, 事实上还存在着一些操作,这些操作是安全的,但不能通过编译器的验 证。 因此在安全的 Rust 背后,还需要 unsafe 的支持。 unsafe0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记面向对象编程 ............................................................................... 43 4.1 面向对象数据结构 ........................................................................ 43 4.1.1 元祖 .......... 其他无论在函数还是在 struct 中,甚至在 enum 中,Lifetime 理论知识都是一 样的。希望大家可以慢慢体会和吸收,做到举一反三。 第四章 面向对象编程 4.1 面向对象数据结构 4.1.1 元祖 元祖表示一个大小、类型固定的有序数据组。 let y = (2, "hello world"); let x: (i32, &str) = (3, "world hello"); 不能适应所有 的场景。 首先,所有的编程语言都需要跟外部的“不安全”接口打交道,调用 外部库等,在“安全”的 Rust 下是无法实现的; 其次,“安全”的 Rust 无法 高效表示复杂的数据结构,特别是数据结构内部有各种指针互相引用的时候; 再次, 事实上还存在着一些操作,这些操作是安全的,但不能通过编译器的验 证。 因此在安全的 Rust 背后,还需要 unsafe 的支持。 unsafe0 码力 | 117 页 | 2.24 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0Rust 中,创建自定义类型需要用到结构体和枚举。 第七章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第八章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第九章探索 Rust 的错误处理的理念与技术。 第十章深入介绍泛型(generic)、Trait 和生命周期(lifetime),这些功能让你能够定义适用 和所有权系统的规则越来越有经验,你就越能自然地编写出安全和高效的代码。持之以 恒! 当你理解了所有权,你将有一个坚实的基础来理解那些使 Rust 独特的功能。在本章中,你将 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 指定的 range 创建一个 slice,其中 starting_index 是 slice 的第一个位置,ending_index 则是 slice 最后一个位置的 后一个值。在其内部,slice 的数据结构存储了 slice 的开始位置和长度,长度对应于 ending_index 减去 starting_index 的值。所以对于 let world = &s[6..11]; 的情况,world 将是一个包含指向0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0Rust 中,创建自定义类型需要用到结构体和枚举。 第七章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第八章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第九章探索 Rust 的错误处理的理念与技术。 第十章深入介绍泛型(generic)、Trait 和生命周期(lifetime),这些功能让你能够定义适用 和所有权系统的规则越来越有经验,你就越能自然地编写出安全和高效的代码。持之以 恒! 当你理解了所有权,你将有一个坚实的基础来理解那些使 Rust 独特的功能。在本章中,你将 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 指定的 range 创建一个 slice,其中 starting_index 是 slice 的第一个位置,ending_index 则是 slice 最后一个位置的 后一个值。在其内部,slice 的数据结构存储了 slice 的开始位置和长度,长度对应于 ending_index 减去 starting_index 的值。所以对于 let world = &s[6..11]; 的情况,world 将是一个包含指向0 码力 | 562 页 | 3.23 MB | 26 天前3
 Rust 程序设计语言简体中文版中,创建自定义类型需要用到结构体和枚举。 第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术。 第 10 章深入介绍泛型(generic)、Trait 和生命周期(lifetime),这些功能让你能够定义适用 和所有权系统的规则越来越有经验,你就越能自然地编写出安全和高效的代码。持之以 恒! 当你理解了所有权,你将有一个坚实的基础来理解那些使 Rust 独特的功能。在本章中,你将 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 range 创建一个 slice,其中 starting_index 是 slice 的第一个位置,ending_index 则是 slice 最后一个位置 的后一个值。在其内部,slice 的数据结构存储了 slice 的开始位置和长度,长度对应于 ending_index 减去 starting_index 的值。所以对于 let world = &s[6..11]; 的情况, world0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版中,创建自定义类型需要用到结构体和枚举。 第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术。 第 10 章深入介绍泛型(generic)、Trait 和生命周期(lifetime),这些功能让你能够定义适用 和所有权系统的规则越来越有经验,你就越能自然地编写出安全和高效的代码。持之以 恒! 当你理解了所有权,你将有一个坚实的基础来理解那些使 Rust 独特的功能。在本章中,你将 通过完成一些示例来学习所有权,这些示例基于一个常用的数据结构:字符串。 栈(Stack)与堆(Heap) 在很多语言中,你并不需要经常考虑到栈与堆。不过在像 Rust 这样的系统编程语言 中,值是位于栈上还是堆上在更大程度上影响了语言的行为以及为何必须做出这样的 range 创建一个 slice,其中 starting_index 是 slice 的第一个位置,ending_index 则是 slice 最后一个位置 的后一个值。在其内部,slice 的数据结构存储了 slice 的开始位置和长度,长度对应于 ending_index 减去 starting_index 的值。所以对于 let world = &s[6..11]; 的情况, world0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust在物理引擎研发中的应用 崔汉青引擎网络架构 derive serde vs protobuf • 通信协议选型 • protobuf/msgpack/… • 跨语言协议 • 需要额外定义数据结构 • Pure Rust • 我们不需要跨语言 • 复用已有的数据结构 Point/Vector… • derive serde • 可自定义serializer/deserializer,灵活度高 • Pure rust win0 码力 | 22 页 | 1.18 MB | 1 年前3 Rust在物理引擎研发中的应用 崔汉青引擎网络架构 derive serde vs protobuf • 通信协议选型 • protobuf/msgpack/… • 跨语言协议 • 需要额外定义数据结构 • Pure Rust • 我们不需要跨语言 • 复用已有的数据结构 Point/Vector… • derive serde • 可自定义serializer/deserializer,灵活度高 • Pure rust win0 码力 | 22 页 | 1.18 MB | 1 年前3
共 14 条
- 1
- 2













