java - c++學習數據結構應不應該用stl實現?
問題描述
數據結構初學者,之前有看過大話數據結構的線性表,棧,隊列的內容,c實現的。學校這學期開數據結構c++,我直接看國外的教材,里面都是stl實現的,比如線性表數組描述刪除一個元素是移動元素直接用copy,怎么移動的過程也沒有,因為之前了解點數據結構還能理解,但越往后面擔心只會記語法而不理解了,這本書關于數據結構的應用寫的很詳細。應該邊看這本書,邊看學校的教材(和大話一樣挺通俗的)。還是直接看這本書作為正式入門數據結構的教材?
挺厚一本,應用偏多
一大堆,拋出異常和stl的語法
問題解答
回答1:要習慣使用STL,因為你現在學的是數據結構,不是學習STL源碼,你的目標應該是搞懂數據結構,所以不要拘泥于這些細節,否則會花費掉你大量的時間.
你可以把數據結構看完之后,再找一本STL源碼分析的書來看.
回答2:沒關系,這只是依據語言特性簡化了操作。如果實在擔心,可以再看看用C語言實現的。
回答3:您好, 我也是初學者. 雖然我自己學數據結構是先用c++(without stl)來學數據結構, 再用純c學習數據結構的, 不過我覺得其實沒有絕對的優劣之分, 隱藏細節可以更專注于算法的表示, 顯示細節可以更深刻的理解其具體實現, 孰優孰劣, 真的很難界定, 就像拋一枚硬幣, 其實哪面朝上都無所謂, 有的大神是自頂向下學習, 有的大神是自底向上學習, 我覺得由此得出的結論是都可以通往終點, 與其糾結這些, 不如選定一種立即著手開始學起來. 猶豫才是最浪費時間的. 我個人覺得直接去計蒜客學知識點然后刷對應的數據結構題比較合適入門, 題主的那本書我也有...
回答4:個人認為:有足夠時間學習的話,自然是先能夠自己實現再使用STL比較好咯.....
回答5:使用stl實現肯定是要學的,畢竟使用stl可以加快開發效率。對于初學者建議不純使用stl,stl不是萬能的,最終還是要理解數據結構內部原理,這樣使用stl實現起來才能更加得心應手。另外對于學校課程還是不用的好,不然提交作業只是包含了相關頭文件,幾乎沒有自己的實現。也可以用簡單的stl堆砌復雜的數據結構。
相關文章:
