C 迭代器和指標區別

2021-10-07 15:00:23 字數 593 閱讀 3144

1、總的說:

1)範圍——指標屬於迭代器的一種(指標可以用來遍歷容器[陣列])

2)功能——迭代器有著比指標更細的劃分並對應能力不同的功能(過載不同的運算子)

3)行為——迭代器比指標更統一和良好的用法(更輕易使用begin()和end(),不用擔心越界)。

2、迭代器:

1)迭代器不是指標,是類模板,表現的像指標。模擬了指標的一些功能,通過過載了指標的一些操作符,->,++ --等封裝了指標,是乙個「可遍歷stl( standard template library)容器內全部或部分元素」的物件, 本質是封裝了原生指標,是指標概念的一種提公升(lift),提供了比指標更高階的行為,相當於一種智慧型指標,他可以根據不同型別的資料結構來實現不同的++,–等操作;

2)迭代器返回的是物件引用,而不是物件的值,cout只能輸出迭代器使用 * 取值後的值,不能直接輸出自身;

3)能一次訪問容器中的各個元素,通過迭代器,容器和演算法可以結合起來,對演算法給與不用的迭代器,就可以對不同容器進行相同的操作。

3、指標:

指標能指向函式,迭代器不行,只能指向容器,指標只能指向某些特定容器。

4、迭代器使用後就釋放了,不能再繼續使用,指標能。

c 指標與迭代器的區別

這是我感覺總結的很好的一篇回答 知乎原回答鏈結 如果只討論 stl container 類的 iterator,它們其實都是一種泛型指標。c風格指標是屬於 iterator 的一種的。iterator 根據功能做了更細的劃分,stl 中的 iterator 分成了五類。我覺得它們的區別 在範圍上,p...

C 指標與迭代器的區別

回答,雖然指標和迭代器很像,比方說都可以 去訪問下乙個 當然針對雙向迭代器 都可以 n去訪問某乙個位置的 隨機迭代器 都可以修改迭代器指向物件的值。但是迭代器與指標的完全不同的,就拿遍歷來說,指標的 只是簡單的去增加快大小的位址,這在支援隨機迭代器的容器中是可行的,但是當去遍歷list這種記憶體不連...

C 迭代器iterator和指標

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