iterator和指標的區別

2021-09-07 23:47:49 字數 750 閱讀 5576

1.

指標和iterator

都支援與整數進行+,

-運算,而且其含義都是從當前位置向前或者向後移動

n個位置

2.指標和iterator

都支援減法運算,指標

-指標得到的是兩個指標之間的距離,迭代器

-迭代器得到的是兩個迭代器之間的距離

3.通過指標或者

iterator

都能夠修改其指向的元素

通過上面這幾點看,兩者真的很像,但是兩者也有著下面的幾個不同地方

1.cout

操作符可以直接輸出指標的值,但是對迭代器進行在操作的時候會報錯。通過看報錯資訊和標頭檔案知道,迭代器返回的是物件引用而不是物件的值,所以

cout

只能輸出迭代器使用

*取值後的值而不能直接輸出其自身。

2.指標能指向函式而迭代器不行,迭代器只能指向容器

這就說明了迭代器和指標其實是完全不一樣的概念來的。指標是一種特殊的變數

,stl

介面。

筆者曾在網上看到這樣一種說法:迭代器是廣義指標,而指標滿足所有迭代器要求。迭代器是

stl演算法的介面,而指標是迭代器,因此

stl演算法可以使用指標來對基於指標的非

stl容器進行操作。

筆者覺得上面說法也有幾分道理,但是到底正不正確就留給看官自己判斷了。但是有一點希望大家注意的是:千萬不要把指標和迭代器搞混了。也許某些編譯器使用指標來實現迭代器以至於有些人會誤以為指標和迭代器是乙個概念來的。

Iterator和Iterable的區別以及使用

iterator和iterable的區別以及使用 1 什麼是迭代器 迭代器 iterator 是一種物件,它能夠用來遍歷標準模板庫容器中的部分或全部元素,每個迭代器物件代表容器中的確定的位址。迭代器修改了常規指標的介面,所謂迭代器是一種概念上的抽象 那些行為上像迭代器的東西都可以叫做迭代器。然而迭代...

C 迭代器iterator和指標

1.指標和iterator都支援與整數進行 運算,而且其含義都是從當前位置向前或者向後移動n個位置 2.指標和iterator都支援減法運算,指標 指標得到的是兩個指標之間的距離,迭代器 迭代器得到的是兩個迭代器之間的距離 3.通過指標或者iterator都能夠修改其指向的元素 指標是c語言裡面就有...

Iterator 與 Iterable 的區別

iterable介面中封裝了iterator介面,實現iterable就可以使用foreach結構了。iterator中和核心的方法next hasnext remove 都是依賴當前位置,如果這些集合實現iterator,則必須包括當前迭代位置的指標。當集合在方法間進行傳遞的時候,由於當前位置不可...