最近幾天在看
stl原始碼,個人感覺如果不自己實現下
stl簡單的架構是很難對
stl有乙個比較系統的了解。所以在閱讀的同時,自己也開始寫寫原始碼。
一開始從
list
容器入手,因為之前對
list
有一定的了解,實現起來也比較輕鬆。但是涉及到迭代器等資料結構的時候,很難將其與
list
聯絡起來。在看《深入剖析
stl原始碼》的時候,作者將迭代器分開申明,所以感覺如果這樣申明
list::iterator ***
,怎麼能夠用
::操作符呢?後來直接看
vs include
裡面的原始碼發現,
iterator
是在list
類裡面申明的,頓時豁然開朗。
其實也不能說是對
stl有很深入的了解,只是通過自己的實現有自己的一些看法,所以寫點東西和大家分享下。希望大家矯正,在大家指點中學習是我最喜歡的~~
還是從最簡單的開始吧,
stack
的實現是沒有迭代器的,因為它只能取最頂層的元素,不支援線性訪問。之後再慢慢整理複雜點的比如
list
、deque等。
下面是源**:
這是在csdn裡面的第一篇博文,寫的很簡單,完全只是在stl的邊緣遊蕩了一下。之後再將比較複雜點的實現分享出來。
STL學習 入門(1) stack
include stack template classt,class container deque t class stack 棧 stack 是乙個容器介面卡 container adaptor 型別,被特別設計用來執行於lifo last in first out 場景,在該場景中,只能從容...
C 容器簡介1 stack
引用鏈結stack是一種容器介面卡 stl的容器分為順序容器和關聯容器,容器介面卡 被設計來用於操作先進後出 filo 結構的情景,在這種情況下,元素的插入和刪除都只能在容器的尾部進行。stack通過容器介面卡來實現,是一種將特定的容器類作為其最底層的容器的類,它提供了一些特定的成員函式來訪問自己的...
我的C 實踐 1 Stack的實現
1 基本的stack 以std deque為內部容器。方法有入棧 出棧 返回棧頂元 判斷棧空。測試程式 2 改進1 指定棧的容量,要用到非型別模板引數。由於棧的容量固定,可以用陣列來存放元素。測試程式 3 改進2 可以指定棧內部使用的容器,還可以使 不同型別的棧之間能賦值。要用到模板模板引數。要定義...