c 迭代器介紹

2021-09-26 22:15:39 字數 1648 閱讀 8764

迭代器(iterator)的介紹

背景:指標可以用來遍歷儲存空間連續的資料結構,但是對於儲存空間費連續的,就需要尋找乙個行為類似指標的類,來對非陣列的資料結構進行遍歷。

定義:迭代器是一種檢查容器內元素並遍歷元素的資料型別。

迭代器提供對乙個容器中的物件的訪問方法,並且定義了容器中物件的範圍

迭代器(iterator)是指標(pointer)的泛化,它允許程式設計師用相同的方式處理不同的資料結構(容器)。

(1)迭代器類似於c語言裡面的指標型別,它提供了對物件的間接訪問。

(2)指標是c語言中的知識點,迭代器是c++中的知識點。指標較靈活,迭代器功能較豐富。

(3)迭代器提供乙個對容器物件或者string物件的訪問方法,並定義了容器範圍

迭代器和指標的區別:

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

容器迭代器的使用

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

常用迭代器型別如下:

如上圖所示,迭代器型別主要支援兩類,隨機訪問和雙向訪問。其中vector和deque支援隨機訪問,list,set,map等支援雙向訪問。

1)隨機訪問:提供了對陣列元素進行快速隨機訪問以及在序列尾部進行快速插入和刪除操作。

2)雙向訪問:插入和刪除所花費的時間是固定的,與位置無關。

迭代器的操作

1、所有迭代器:

2、雙向迭代器:

3、輸入迭代器:

4、輸出迭代器

5、隨機迭代器

c 迭代器介紹

迭代器的簡介 1 迭代器類似於指標型別,它也提供了對物件的間接訪問。2 指標是c語言中就有的東西,迭代器是c 中才有的,指標用起來靈活高效,迭代器功能更豐富些。3 迭代器提供乙個對容器物件或者string物件的訪問的方法,並且定義了容器範圍。使用迭代器 迭代器和指標不一樣,容器和string有迭代器...

C 迭代器基礎介紹

1.迭代器 c 迭代器是一種檢查容器內元素並遍歷元素的資料型別。標準庫為每一種標準容器 包括vector 定義了一種迭代器型別。迭代器型別提供了比下標操作更加通用的化的用法。2.容器的iterator型別 每種容器型別都定義了自己的c 迭代器型別,如vector vector iterator it...

C 迭代器之 反向迭代器

反向迭代器 reverse iterator 是普通迭代器的介面卡,通過重新定義自增和自減操作,以達到按反序遍歷元素的目的。如果在標準演算法庫中用反向迭代器來代替普通的迭代器,那麼執行結果與正常情況下相反。除此之外,其用法與普通迭代器完全一樣,我們不作詳細討論。這裡主要討論的是反向迭代器的乙個很特殊...