iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

用C++ 設計程式中的系統櫃 系列

寫過程式的人都知道,每個程式執行的效率以及使用的記憶體空間都大不相同,即便他們的目的相同,為什麼呢?原因就在於如何存取資料,以及怎麼取得資料!想像你是一個儲貨中心的老闆,你要怎麼去加速員工取貨與存貨的速度?或許你會設計不同的空間,或許你會將貨物分門別類!這些都是方法。在這場鐵人賽中,我會分享如何用C++管理程式中的資料,換句話說,用C++建造出不同的儲物空間,而在程式設計中,這門學問就叫做「資料結構」。

鐵人鍊成 | 共 30 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 1

[Day 01] 用C++ 設計程式中的系統櫃:前言

圖靈獎得主曾經說過:「程式設計 = 資料結構 + 演算法」 在入門階段,我們不見得會認為資料結構的重要性。只要 Online Judge 系統亮起 Accept...

2022-09-02 ‧ 由 chmh0624 分享
DAY 2

[Day 02] 用C++ 設計程式中的系統櫃:指標概論

指標是 C/C++ 的靈魂,了解指標的真面目,你可以更快速認識資料結構中記憶體的操作! 指標宣告與運算 這個議題是我之前常常搞混的!有時候 * 與記憶體有關,...

2022-09-03 ‧ 由 chmh0624 分享
DAY 3

[Day 03] 用C++ 設計程式中的系統櫃:動態配置記憶體(前傳)

既然有動態配置記憶體,那麼有靜態配置的記憶體嗎? 當然有喔! 靜態配置的記憶體 在 C++ 中,什麼時候會用到靜態配置記憶體,我只能說是大多時候喔! // 靜...

2022-09-04 ‧ 由 chmh0624 分享
DAY 4

[Day 04] 用C++ 設計程式中的系統櫃:動態配置記憶體

解決上一篇的兩個問題之前,我們先來認識動態記憶體吧! 動態配置的記憶體 特色: 動態記憶體由程式設計師來配置。換句話說,就是在執行程式時,才會配置記憶體。...

2022-09-05 ‧ 由 chmh0624 分享
DAY 5

[Day 05] 用C++ 設計程式中的系統櫃:神奇的箭號

學習物件導向時,你一定常常看到 . 這個符號。 當物件導向遇到指標時,你又一定看過 -> 這個符號! 許多人常常把 -> 與 . 混淆,不知該用哪個...

2022-09-06 ‧ 由 chmh0624 分享
DAY 6

[Day 06] 用C++ 設計程式中的系統櫃:鏈結串列概論

鏈結串列可以讓你更加認識指標的使用。 我認為這是精進自己指標能力的開始,包括「取值」、「取址」、「動態配置記憶體」。 鏈結串列 鏈結串列又可以簡單分成「單向鏈...

2022-09-07 ‧ 由 chmh0624 分享
DAY 7

[Day 07] 用C++ 設計程式中的系統櫃:節點的初始化

經過上一篇的介紹,我們應該知道鏈結串列的單位是節點吧! 節點又會因為「單向鏈結串列」與「雙向鏈結串列」的差異,而有些微不同。 節點的內容其實不只一個,所以我們會...

2022-09-08 ‧ 由 chmh0624 分享
DAY 8

[Day 08] 用C++ 設計程式中的系統櫃:linkedList::pushFront()

在做任何事情之前,我們要先建立一個鏈結串列的物件。 int main() { SLL *sll = new SLL; DLL *dll = ne...

2022-09-09 ‧ 由 chmh0624 分享
DAY 9

[Day 09] 用C++ 設計程式中的系統櫃:linkedList::printAll()

如果我們的物件沒有隨機存取的功能,那該如何取得鏈結串列的內容? 目前來說,我們所擁有的類別屬性只有指標 head ( 和指標 tail),因此從這裡下手絕對是正...

2022-09-10 ‧ 由 chmh0624 分享
DAY 10

[Day 10] 用C++ 設計程式中的系統櫃:linkedList::popFront()

有了新增節點的類別方法,總該有一個刪除節點的類別方法吧! 刪除節點的方式有很多種,我們就從最簡單的刪除鏈結串列頭部節點開始。 定義類別 class SLL {...

2022-09-11 ‧ 由 chmh0624 分享