C++STL迭代器篇

前言

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

迭代器總括

迭代器按照定義分類:編程

  • 正向迭代器 : 容器類名::iterator  迭代器名;數組

  • 常正向迭代器 : 容器類名::const_iterator  迭代器名;微信

  • 反向迭代器 :容器類名::reverse_iterator  迭代器名;app

  • 常反向迭代器 : 容器類名::const_reverse_iterator  迭代器名;編輯器

以上通常是內置迭代器。測試

迭代器的功能分類:

  • 正向迭代器 flex

  • 雙向迭代器 spa

  • 隨機方向迭代器 .net

  • 流型迭代器

不一樣容器的迭代器的功能以下:

內置迭代器使用

內置迭代器使用,這裏就以list和map爲例,而且只演示正向迭代器的使用以及反向迭代器的使用。

1
list爲例

list和vector些迭代器使用基本差很少,就是類名前綴不一樣而已。測試代碼以下:

2
map爲例

由於map中存儲的數據是數對類型(pair<type1,type2>),因此咱們在用迭代器遍歷的時候須要剝洋蔥,測試代碼以下:

流型迭代器使用

流型迭代器的使用你們能夠了解一下便可,難度並非很大,主要是掌握兩種流型迭代器的構造含義便可,構造含義以下:

使用的測試代碼以下:

流型迭代器相對於來講用的不是不少,掌握上圖中的copy操做便可。

更多的內容你們能夠自行補充。

內置迭代器的簡單實現

若是你對於內置迭代器感受很難記,不妨看看內置迭代器的實現,其實這些操做都是C++運算符重載而已,測試代碼以下:

數據組成


list封裝

迭代器主要實現代碼


尾言

本欄目到這裏結束了,下一章節講迭代器,做業:本身簡單實現一個vecotr數組




本文分享自微信公衆號 - C語言編程基礎(goodStudyCode)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索