
前言
上一章節主要是詳細介紹了C++STL容器篇,不清楚的能夠回顧一下哦。本章節主要針對於C++迭代器作個詳細介紹。迭代器通常是用來遍歷和訪問容器中的數據而存在的,迭代器是讓類的對象相似於指針運算同樣操做容器。web

迭代器總括
迭代器按照定義分類:編程
正向迭代器 : 容器類名::iterator 迭代器名;數組
常正向迭代器
: 容器類名::const_iterator 迭代器名;微信反向迭代器
:容器類名::reverse_iterator 迭代器名;app-
常反向迭代器 : 容器類名::const_reverse_iterator 迭代器名;編輯器
以上通常是內置迭代器。測試
迭代器的功能分類:
正向迭代器
flex雙向迭代器 spa
隨機方向迭代器 .net
流型迭代器
不一樣容器的迭代器的功能以下:

內置迭代器使用
內置迭代器使用,這裏就以list和map爲例,而且只演示正向迭代器的使用以及反向迭代器的使用。
list和vector那些迭代器使用基本差很少,就是類名前綴不一樣而已。測試代碼以下:
由於map中存儲的數據是數對類型(pair<type1,type2>),因此咱們在用迭代器遍歷的時候須要剝洋蔥,測試代碼以下:

流型迭代器使用
流型迭代器的使用你們能夠了解一下便可,難度並非很大,主要是掌握兩種流型迭代器的構造含義便可,構造含義以下:
使用的測試代碼以下:
流型迭代器相對於來講用的不是不少,掌握上圖中的copy操做便可。
更多的內容你們能夠自行補充。

內置迭代器的簡單實現
若是你對於內置迭代器感受很難記,不妨看看內置迭代器的實現,其實這些操做都是C++運算符重載而已,測試代碼以下:
數據組成
list封裝
迭代器主要實現代碼
尾言
本欄目到這裏結束了,下一章節講迭代器,做業:本身簡單實現一個vecotr數組
本文分享自微信公衆號 - C語言編程基礎(goodStudyCode)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。