而迭代器通過過載 * (解引用)運算子,從而就可以得到節點的值。通過過載operator -> 運算子就可以得到容器節點位址(指標)
最近一直在看侯捷寫的《stl原始碼剖析》小有想法。故此一記
1,三者之間聯絡:
每個容器都有專屬的迭代器,而演算法通過迭代器對容器中的元素進行操作。
2,容器
容器能夠通過模版的方法,裝下各種型別的節點元素。
3,迭代器是一種smart pointer
迭代器是一種行為類似指標的物件。迭代器所指向的物件為容器中元素(結構體)的節點。
如定義乙個 class list 的容器 ,容器的節點為listitem,那麼迭代器就應該指向(的物件)容器中的listitem節點。
而迭代器通過過載 * (解引用)運算子,從而就可以得到節點的值。通過過載operator -> 運算子就可以得到容器節點位址(指標)
4,演算法:
引用運算子 (C )
在c 中提供了一種引用運算子 將某一變數定義為另乙個變數的引用變數,改變其中的乙個變數兩者均會同步變化。什麼是應用變數?引用變數 於 數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。在指令式語言中,引用變數通常是可變的 但在純函式式語言中,變數可能是不可變的。定義乙個引...
C 解引用 和箭頭 運算子的過載
1 箭頭運算子必須是類的成員函式。解引用運算子一般也應該宣告為類的成員函式,但不是必須。2 箭頭用算符返回值必須是乙個指標,或者是乙個過載了箭頭運算子的物件。a 如果返回的是乙個指標將呼叫內建的箭頭運算子。執行相當於 p.operator mem 的操作。b 如果返回是乙個過載了箭頭運算子的物件,則...
C 指標運算子( 和 )
c 提供了兩種指標運算子,一種是取位址運算子 一種是間接定址運算子 指標是乙個包含了另乙個變數位址的變數,您可以把乙個包含了另乙個變數位址的變數說成是 指向 另乙個變數。變數可以是任意的資料型別,包括物件 結構或者指標。是一元運算子,返回運算元的記憶體位址。例如,如果 var 是乙個整型變數,則 v...