iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
Software Development

程式菜鳥自學C++資料結構演算法系列 第 4

[Day04]程式菜鳥自學C++資料結構演算法 – 陣列Array List實作之一

今天終於要來講解第一次的實作了,這系列的實作內容都是用Visual Studio 2019(以下簡稱VS)來操作,請大家先下載好٩(^ᴗ^)۶

打開VS之後先建立新專案,然後專案類別選擇空白專案
https://ithelp.ithome.com.tw/upload/images/20210918/20140187CoWSGhngIX.png

建立好了之後開始設定專案名稱和檔案的路徑,專案可命名為SqlList,檔案路徑可以再C槽新增空白的資料夾來存放這系列的實作。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187CsULGGHWgX.png

接下來在資源檔按右鍵點選加入後按新增項目,選擇第一個C++檔,將下方的名稱改為Array.cpp。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187030mohAZxt.png

完成之後就可以開始編寫程式碼了!
https://ithelp.ithome.com.tw/upload/images/20210918/20140187Y68Mnc37zl.png

做到這裡的時候可以按F10在按F11查看變數名稱、值和類型有沒有錯
https://ithelp.ithome.com.tw/upload/images/20210918/201401871RzQE89yH9.png

這裡解釋一下#include標頭檔和std::cout的意思

std::cout用在命名空間的問題,是避免大家使用同樣的名稱為類別、物件命名的一種機制,可以想成同名同姓的人會容易搞混,如果有相同名稱的變數,會使C++混淆並出錯,而std::cout就相當於告訴C++編譯器cout這個人是始於std的。
在C++中有很多內建函式會放在不同的引入檔,iostream就是最基本的引入檔,沒有iostream就無法繼續執行;如果要處理數學運算,就需要使用#include的函式庫。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187fCZ5FvgUd4.png

打好程式碼後就可依先執行看看是否正常,在執行前先檢查控制台有沒有建立正確,依照圖片步驟檢查就可以了。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187vKenzgodOi.png
https://ithelp.ithome.com.tw/upload/images/20210918/20140187rPaNOTq0gN.png
都沒有問題就按執行看看結果。顯示「沒有找到」就代表一開始建立的空陣列是沒有問題的。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187vE5kq1MvCM.png

接下來就開始建立陣列的資料,get()函式相當於讀取陣列內的資料。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187VmhZ4wjrqs.png
https://ithelp.ithome.com.tw/upload/images/20210918/20140187DqLwoXD5M3.png

編寫好push_back(將資料放在元素最尾端)和print(顯示出來) 後執行看看,可以發現並沒有D,原因是一開始設立的容量太少,需要增加空間。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187SLiQQZBysK.png

編寫realloc()函式擴增記憶體空間。
https://ithelp.ithome.com.tw/upload/images/20210918/20140187CNvc5L5K1o.png
https://ithelp.ithome.com.tw/upload/images/20210918/20140187cPXRUy9LC0.png

可以看見D成功加入陣列。!
https://ithelp.ithome.com.tw/upload/images/20210918/20140187WmHnE21tWk.png

今日小結:今天先做到這邊,明天會繼續實作陣列得其他功能,才剛剛開始而已,花多一點間慢慢吸收會比較有效喔!
P.S.程式碼會在實作完成後在附上,有興趣的可以先嘗試自己打看看୧|” •̀ ل͜ •́ ”|୨


上一篇
[Day03]程式菜鳥自學C++資料結構演算法 – 常見的線性串列其一:陣列Array List
下一篇
[Day05]程式菜鳥自學C++資料結構演算法 – 陣列Array List實作之二
系列文
程式菜鳥自學C++資料結構演算法30

尚未有邦友留言

立即登入留言