java - c++學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)應(yīng)不應(yīng)該用stl實(shí)現(xiàn)?
問(wèn)題描述
數(shù)據(jù)結(jié)構(gòu)初學(xué)者,之前有看過(guò)大話數(shù)據(jù)結(jié)構(gòu)的線性表,棧,隊(duì)列的內(nèi)容,c實(shí)現(xiàn)的。學(xué)校這學(xué)期開數(shù)據(jù)結(jié)構(gòu)c++,我直接看國(guó)外的教材,里面都是stl實(shí)現(xiàn)的,比如線性表數(shù)組描述刪除一個(gè)元素是移動(dòng)元素直接用copy,怎么移動(dòng)的過(guò)程也沒有,因?yàn)橹傲私恻c(diǎn)數(shù)據(jù)結(jié)構(gòu)還能理解,但越往后面擔(dān)心只會(huì)記語(yǔ)法而不理解了,這本書關(guān)于數(shù)據(jù)結(jié)構(gòu)的應(yīng)用寫的很詳細(xì)。應(yīng)該邊看這本書,邊看學(xué)校的教材(和大話一樣挺通俗的)。還是直接看這本書作為正式入門數(shù)據(jù)結(jié)構(gòu)的教材?
挺厚一本,應(yīng)用偏多
一大堆,拋出異常和stl的語(yǔ)法
問(wèn)題解答
回答1:要習(xí)慣使用STL,因?yàn)槟悻F(xiàn)在學(xué)的是數(shù)據(jù)結(jié)構(gòu),不是學(xué)習(xí)STL源碼,你的目標(biāo)應(yīng)該是搞懂?dāng)?shù)據(jù)結(jié)構(gòu),所以不要拘泥于這些細(xì)節(jié),否則會(huì)花費(fèi)掉你大量的時(shí)間.
你可以把數(shù)據(jù)結(jié)構(gòu)看完之后,再找一本STL源碼分析的書來(lái)看.
回答2:沒關(guān)系,這只是依據(jù)語(yǔ)言特性簡(jiǎn)化了操作。如果實(shí)在擔(dān)心,可以再看看用C語(yǔ)言實(shí)現(xiàn)的。
回答3:您好, 我也是初學(xué)者. 雖然我自己學(xué)數(shù)據(jù)結(jié)構(gòu)是先用c++(without stl)來(lái)學(xué)數(shù)據(jù)結(jié)構(gòu), 再用純c學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的, 不過(guò)我覺得其實(shí)沒有絕對(duì)的優(yōu)劣之分, 隱藏細(xì)節(jié)可以更專注于算法的表示, 顯示細(xì)節(jié)可以更深刻的理解其具體實(shí)現(xiàn), 孰優(yōu)孰劣, 真的很難界定, 就像拋一枚硬幣, 其實(shí)哪面朝上都無(wú)所謂, 有的大神是自頂向下學(xué)習(xí), 有的大神是自底向上學(xué)習(xí), 我覺得由此得出的結(jié)論是都可以通往終點(diǎn), 與其糾結(jié)這些, 不如選定一種立即著手開始學(xué)起來(lái). 猶豫才是最浪費(fèi)時(shí)間的. 我個(gè)人覺得直接去計(jì)蒜客學(xué)知識(shí)點(diǎn)然后刷對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)題比較合適入門, 題主的那本書我也有...
回答4:個(gè)人認(rèn)為:有足夠時(shí)間學(xué)習(xí)的話,自然是先能夠自己實(shí)現(xiàn)再使用STL比較好咯.....
回答5:使用stl實(shí)現(xiàn)肯定是要學(xué)的,畢竟使用stl可以加快開發(fā)效率。對(duì)于初學(xué)者建議不純使用stl,stl不是萬(wàn)能的,最終還是要理解數(shù)據(jù)結(jié)構(gòu)內(nèi)部原理,這樣使用stl實(shí)現(xiàn)起來(lái)才能更加得心應(yīng)手。另外對(duì)于學(xué)校課程還是不用的好,不然提交作業(yè)只是包含了相關(guān)頭文件,幾乎沒有自己的實(shí)現(xiàn)。也可以用簡(jiǎn)單的stl堆砌復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
相關(guān)文章:
1. objective-c - ios百度地圖定位問(wèn)題2. html - css 如何添加這種邊框?3. javascript - 求助這種功能有什么好點(diǎn)的插件?4. html5 - 如何解決bootstrap打開模態(tài)modal窗口引起頁(yè)面抖動(dòng)?5. javascript - 求助關(guān)于js正則問(wèn)題6. javascript - node.js服務(wù)端渲染解疑7. html5 - rudy編譯sass的時(shí)候有中文報(bào)錯(cuò)8. javascript - 關(guān)于定時(shí)器 與 防止連續(xù)點(diǎn)擊 問(wèn)題9. 為何 localStorage、sessionStorage 屬于html5的范疇,但是為何 IE8卻支持?10. 微信開放平臺(tái) - Android調(diào)用微信分享不顯示
