STL中 容器 演算法 迭代器 之間的關係

2021-09-03 02:47:39 字數 379 閱讀 6923

最近一直在看侯捷寫的《stl原始碼剖析》小有想法。故此一記

1,三者之間聯絡:

每個容器都有專屬的迭代器,而演算法通過迭代器對容器中的元素進行操作。

2,容器

容器能夠通過模版的方法,裝下各種型別的節點元素。

3,迭代器是一種smart pointer

迭代器是一種行為類似指標的物件。迭代器所指向的物件為容器中元素(結構體)的節點。

如定義乙個 class   list  的容器 ,容器的節點為listitem,那麼迭代器就應該指向(的物件)容器中的listitem節點。

而迭代器通過過載 * (解引用)運算子,從而就可以得到節點的值。通過過載operator -> 運算子就可以得到容器節點位址(指標)

4,演算法:

STL容器演算法迭代器的設計理念

1 stl的容器通過類模板技術,實現資料型別和容器模型的分離。2 stl的迭代器技術實現了遍歷容器的統一方法 也為stl的演算法提供了統一性,把容器和演算法有效的粘合在一起 3 stl的函式物件實現了自定義資料型別的演算法運算。演算法和函式物件 4 演算法通過函式物件 謂詞 實現自定義資料型別和基礎...

STL 容器與迭代器

迭代器 迭代器是泛化的指標 但並不是指標 用法和指標類似,利用迭代器對容器中的元素序列的操作。格式舉例list itrerator it 迭代器本身是乙個物件,這個物件可以遍歷stl容器內部全部的物件,它能夠反覆地對stl容器內容進行訪問。迭代器所提供的基本操作如下所示 a.獲取當前被指向的元素,用...

stl 2 初始容器迭代器演算法

include std cout std endl 螢幕輸出需要的標頭檔案 include vector容器和vector迭代器需要的標頭檔案 include for each演算法需要的標頭檔案 宣告乙個for each演算法需要用到的 函式 void myprint int v int main...