C++特性:迭代器

1. 迭代器(Iterator)的介紹

背景:指針可以用來遍歷存儲空間連續的數據結構,但是對於存儲空間費連續的,就需要尋找一個行為類似指針的類,來對非數組的數據結構進行遍歷。
定義:迭代器是一種檢查容器內元素並遍歷元素的數據類型。
迭代器提供對一個容器中的對象的訪問方法,並且定義瞭容器中對象的范圍
迭代器(Iterator)是指針(pointer)的泛化,它允許程序員用相同的方式處理不同的數據結構(容器)。
(1)迭代器類似於C語言裡面的指針類型,它提供瞭對對象的間接訪問。
(2)指針是C語言中的知識點,迭代器是C++中的知識點。指針較靈活,迭代器功能較豐富。
(3)迭代器提供一個對容器對象或者string對象的訪問方法,並定義瞭容器范圍

2. 迭代器和指針的區別:

容器和string有迭代器類型同時擁有返回迭代器的成員。如:容器有成員begin和end,其中begin成員復制返回指向第一個元素的迭代器,而end成員返回指向容器尾元素的下一個位置的迭代器,也就是說end指示的是一個不存在的元素,所以end返回的是尾後迭代器

3. 容器迭代器的使用

每種容器類型都定義瞭自己的迭代器類型,如vector:vector< int>:: iterator iter;//定義一個名為iter的變量,數據類型是由vector< int>定義的iterator 類型。簡單說就是容器類定義瞭自己的iterator類型,用於訪問容器內的元素。每個容器定義瞭一種名為iterator的類型,這種類型支持迭代器的各種行為
常用迭代器類型如下:

這裡寫圖片描述

如上圖所示,迭代器類型主要支持兩類,隨機訪問和雙向訪問。其中vector和deque支持隨機訪問,list,set,map等支持雙向訪問。
1)隨機訪問:提供瞭對數組元素進行快速隨機訪問以及在序列尾部進行快速插入和刪除操作。
2)雙向訪問:插入和刪除所花費的時間是固定的,與位置無關。

4. 迭代器的操作

1、所有迭代器:

這裡寫圖片描述

2、雙向迭代器:

這裡寫圖片描述

3、輸入迭代器:

列表內容

4、輸出迭代器

這裡寫圖片描述

5、隨機迭代器

這裡寫圖片描述

到此這篇關於C++特性:迭代器的文章就介紹到這瞭,更多相關C++ 迭代器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: