vector是stl裡面的標準模板,簡單的說就是乙個變長陣列。
在使用vector的時候,有時能帶來程式設計上的方便,但是如果使用不當,則會帶來一些麻煩或者隱藏一些錯誤。
任何系統都不會允許資料無限增加。任何資料要麼有乙個明確的最大數量,要麼有乙個隱性的的最大數量。
如果需要存放的元素有乙個不太大的最大值數量,那麼大多數時候使用陣列會更加簡潔。因為vector使用起來注意事項太多,即使是熟練的人也很容易出現記憶體失效之類的錯誤,這無形中增加了系統維護成本。
適合使用vector的情況,是我們預期資料元素有乙個很大的最大數量,但是通常是乙個比較小的數量。比如從系統結構設計方面,我們允許資料數量最多可以有1000000個,但是通常不會超過100個。那麼這時候使用vector就可以一方面簡化程式設計一方面節省記憶體。
我個人對於使用vector是毫無熱情的。
使用C 實現Vector
最近開始學習資料結構與演算法了,使用的是weiss的資料結構與演算法c 描述,第三版和第四版。其中第四版已經全部用c 11的標準重寫了。感覺我自己寫的時候有點糾結到底用c 老的標準還是c 11的標準,哈哈,選擇困難!今天我主要用c 老的標準寫了vector類,因此沒有實現移動建構函式和移動拷貝函式。...
NoSQL與RDBMS 何時使用,何時不使用
naresh kumar是位軟體工程師與熱情的博主,對於程式設計與新事物擁有極大的興趣,非常樂於與其他開發者和程式設計師分享技術上的研究成果。近日,naresh撰文比較了nosql與rdbms,並詳細介紹了他們各自的特點與適用的場景。nosql並不是關係型資料庫管理系統,本文將會介紹nosql資料庫...
何時使用或何時不使用malloc函式
在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...