迭代器和指針的區別:
相同的點:
都可以進行整數操作進行加減運算,實現當前位置的移動;支持同類型的進行減法操作,得到兩個指針之間的距離。
不同點:
迭代器:
1、 迭代器不是指針是類模版,表現像指針。它模擬了一些指針的功能, 通過重載指針的一些操作符。本質是封裝了原生指針,相當於指針的一種升級。
2、 迭代器返回的是對象的引用而不是對象的值。
指針:
1、 指針有迭代器不能完成的功能, 比如指向函數。迭代器只能指向容器。
兩者行爲表現很像,但是本質不一樣。
指針和引用的區別:
1、 指針佔用內存, 引用只是別名本身不佔內存。指針 可以有多級,而引用只有一級。
2、 引用使用的時候不需要解引用, 指針要
3、 引用必須初始化,指針不要
4、 引用不能爲空, 而指針可以爲空
5、 引用一旦初始化就不能改變,指針可以改變。
6、 sizeof操作符得到的是指針本身的大小,而引用得到的是對象的大小
7、 引用的++ – 操作相當於變量本身的值的改變操作,指針的++ – 操作則是地址指向的移動。
all