Hello 算法 1.2.0 繁体中文 Rust 版然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 388 页 | 18.82 MB | 10 月前3
Comprehensive Rust(繁体中文)更符號或轉換到 較小型別時的直觀做法,請檢查文件並加註說明內容。 雖然使用 as 進行型別相當簡單,但是非常容易出錯;舉例來說,如果往後的維護作業改變了所用型別或 型別中值的範圍,這常常就是某些細微錯誤的來源。只有在意圖用於指明無條件截斷時,我們才建議使用 型別轉換。舉例來說,如果無論高位元中的內容為何,您都只需要 u64 的底部 32 位元,就可以使用 as u32。 如果是 u32 到 u64 rs", "foo.txt"]); Ok(()) } } 184 第 IX 章 Android 185 第 31 部分 歡迎在 Android 中使用Rust Android 的系統軟體支援 Rust。也就是說,您可以在 Rust 中編寫新的服務、程式庫、驅動程式,甚至是韌 體,也可以視需要強化現有程式碼。 今天我們會嘗試在您擁有的其中一項專案中呼叫 Rust。因此,請盡量在程式碼集中找出一小 編寫應用程式處理器的系統啟動載入程式/核心程式碼。 • 一些適用於 Rust 裸機開發的實用 Crate。 在本課程的微控制器部分,我們將使用 BBC micro:bit 第 2 版當做範例。這是以 Nordic nRF51822 微 控制器為基礎的開發板,具備一些 LED 和按鈕、連接 I2C 的加速計和羅盤,以及內建的 SWD 偵錯工具。 如要開始使用,請先安裝稍後需使用的工具。使用 gLinux 或 Debian: sudo0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 202406更符號或轉換到 較小型別時的直觀做法,請檢查文件並加註說明內容。 雖然使用 as 進行型別相當簡單,但是非常容易出錯;舉例來說,如果往後的維護作業改變了所用型別或 型別中值的範圍,這常常就是某些細微錯誤的來源。只有在意圖用於指明無條件截斷時,我們才建議使用 型別轉換。舉例來說,如果無論高位元中的內容為何,您都只需要 u64 的底部 32 位元,就可以使用 as u32。 如果是 u32 到 u64 rs", "foo.txt"]); Ok(()) } } 182 第 IX 章 Android 183 第 31 部分 歡迎在 Android 中使用Rust Android 的系統軟體支援 Rust。也就是說,您可以在 Rust 中編寫新的服務、程式庫、驅動程式,甚至是韌 體,也可以視需要強化現有程式碼。 今天我們會嘗試在您擁有的其中一項專案中呼叫 Rust。因此,請盡量在程式碼集中找出一小 編寫應用程式處理器的系統啟動載入程式/核心程式碼。 • 一些適用於 Rust 裸機開發的實用 Crate。 在本課程的微控制器部分,我們將使用 BBC micro:bit 第 2 版當做範例。這是以 Nordic nRF51822 微 控制器為基礎的開發板,具備一些 LED 和按鈕、連接 I2C 的加速計和羅盤,以及內建的 SWD 偵錯工具。 如要開始使用,請先安裝稍後需使用的工具。使用 gLinux 或 Debian: sudo0 码力 | 356 页 | 1.41 MB | 1 年前3
Comprehensive Rust(日语) 202412教室で教える場合は、ここでスケジュールを確認することをおすすめします。各セグメントの終わりに 演習を行い、休憩を挟んでから答え合わせをしてください。上記の時間配分は、あくまでコースを予定 どおりに進めるための目安ですので、必要に応じて柔軟に調整してください。 24 第 4 章 Hello, World This segment should take about 15 minutes. It contains: Slide Duration は様々なデバイスで使用されています: – ファームウェアやブートローダ、 – スマートディスプレイ、 – 携帯電話、 – デスクトップ、 – サーバ。 Rust と C++が似ているところ: • 高い柔軟性。 • 高度な制御性。 • Can be scaled down to very constrained devices such as microcontrollers. • ランタイムやガベージコレクションがない。 を使用できます。 クロージャを受け取る関数を定義する場合、可能であれば(1 回だけ呼び出す)FnOnce を使用し、次 に FnMut、最後に Fn を使用するようにします。これにより、呼び出し元に最も柔軟に対応できます。 In contrast, when you have a closure, the most flexible you can have is Fn (which can be passed0 码力 | 381 页 | 1.36 MB | 10 月前3
CeresDB Rust 生产实践 任春韶FAQ GitHub : • https://github.com/CeresDB/ceresdb • https://github.com/CeresDB/ceresmeta 钉钉群: 微信公众号: Thank you !0 码力 | 22 页 | 6.95 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索https://github.com/KusionStack/kcl • https://github.com/KusionStack/konfig Twitter • @KusionStack 微信 钉钉 Thank you!0 码力 | 25 页 | 3.50 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐China Conf 2022 – 2023, Shanghai, China • SM9 为标识加密算法(Identity-Based Cryptography),非对称加密,标识加密将用户的标识 (如微信号、邮件地址、手机号码、QQ 号等)作为公钥,省略了交换数字证书和公钥过程,使得 安全系统变得易于部署和管理。提供签名校验,密钥交换,密钥封装与加解密功能。由于以上用 例,可以用于网络安全密码协议,如SSL/TLS。0 码力 | 44 页 | 3.70 MB | 1 年前3
Hello 算法 1.1.0 Rust版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph)和有向图(directed graph),如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 hello‑algo.com 196 图 9‑2 有向图与无向图 根据0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph)和有向图(directed graph),如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 www.hello‑algo.com 196 图 9‑2 有向图与无向图0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph」和「有向图 directed graph」,如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 hello‑algo.com 195 图 9‑2 有向图与无向图 根据所有顶点是否连通,可分为「连通图0 码力 | 383 页 | 17.61 MB | 1 年前3
共 11 条
- 1
- 2













