迭代器和指針、指針和引用

迭代器和指針的區別:

相同的點:

都可以進行整數操作進行加減運算,實現當前位置的移動;支持同類型的進行減法操作,得到兩個指針之間的距離。

不同點:

迭代器:

1、 迭代器不是指針是類模版,表現像指針。它模擬了一些指針的功能, 通過重載指針的一些操作符。本質是封裝了原生指針,相當於指針的一種升級。
2、 迭代器返回的是對象的引用而不是對象的值。

指針:

1、 指針有迭代器不能完成的功能, 比如指向函數。迭代器只能指向容器。

兩者行爲表現很像,但是本質不一樣。

指針和引用的區別:

1、 指針佔用內存, 引用只是別名本身不佔內存。指針 可以有多級,而引用只有一級。
2、 引用使用的時候不需要解引用, 指針要
3、 引用必須初始化,指針不要
4、 引用不能爲空, 而指針可以爲空
5、 引用一旦初始化就不能改變,指針可以改變。
6、 sizeof操作符得到的是指針本身的大小,而引用得到的是對象的大小
7、 引用的++ – 操作相當於變量本身的值的改變操作,指針的++ – 操作則是地址指向的移動。


all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章