C 學習之STL初理解

2021-07-16 06:40:32 字數 860 閱讀 9470

一直以來自認為作為程式設計師不需要去刻意寫作記錄東西,因為只要會程式設計寫**即使記不住的東西時間常了之後自然就能耳熟能詳。直到最近找工作需要補的東西太多,回憶起之前學的東西時感覺很吃力恨當時沒有吃透理解的同時也恨當時沒有記筆記和總結,最後思考反省還是自己太懶,懶得去記錄一些自以為以後不會忘記的東西,其實不然。希望以後能夠堅持寫一些東西,第一累積已有的知識,第二可以分享自己的想法。

由於是剛開始自學c++,自己的理解也可能會有偏差,網上有很多關於stl(standard template library)的詳解,由於之前沒有具體學過c++,直到看了stl後,才知道大學裡面學習的資料結構類似於stl裡面的容器例如線性表對應的vector和線性鍊錶list等,而類似的演算法,如各種排序和查詢就是stl中的algorithm,而迭代器類似於指標來用來對容器內容的遍歷或走訪。

一、stl簡介

stl從廣義上講分為三類:演算法(algorithm)、容器(container)和迭代器(iterator),容器和演算法通過迭代器進行連線。stl詳細的說六大元件:容器、演算法、迭代器、仿函式、介面卡和空間配製器。

1)容器

容器包括序列式容器、介面卡容器、關聯式容器

容器部分主要由標頭檔案、、、、、和組成。

其中vector 為線性連續空間,可動態分別記憶體空間。

list為資料結構中的線性鍊錶,記憶體空間不連續通過指標作為迭代器尋找上下節點,每次插入或刪除乙個元素,就分配或釋放乙個元素空間。因此list對於空間的運用絕對的精準,一點也不浪費。

queue 為佇列,先進先出

stack 為棧 後進後出

關聯式容器(associated containers):元素位置取決於特定的排序準則,和插入順序無關 ——set、multiset、map、multimap。

理解C 之std 與 stl

1,首先明確 std是乙個 命名空間的名字。2,其次,明確stl是 standard template library的縮寫,即標準模板庫。3,2者關係 in fact,all identifiers of the c standard library are defined in a namesp...

c 學習記錄之STL

總結想再系統學習一下c 搭建這個筆記架構,長期更新 btw想每天更新一下 如果有錯誤地方,煩請多多指教。在學習過程中,也希望能養成良好的 習慣,主要就是按照華為 風格來碼 良好的 風格很重要,我們都要逐漸養成 stl standard template library,標準模版庫 是惠普實驗室開發的...

C 學習筆記之 STL 佇列

一.引言 在演算法以及資料結構的實現中,很多地方我們都需要佇列 遵循fifo,先進先出原則 為了使用佇列,我們可以自己用陣列來實現佇列,但自己寫太麻煩不說,並且還很容易出錯。好在c 的stl 標準模板庫 為我們實現了乙個強大的佇列,它包含在標頭檔案中。二.queue a 建構函式 下面用例子來展示q...