日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++迭代器使用错误总结

發布時間:2023/11/30 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++迭代器使用错误总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

指針和迭代器的區別:

迭代器:
? ? ? (1)迭代器不是指針,是類模板,表現的像指針。他只是模擬了指針的一些功能,通過重載了指針的一些操作符,->,*,++ --等封裝了指針,是一個“可遍歷STL( Standard Template Library)容器內全部或部分元素”的對象,?本質是封裝了原生指針,是指針概念的一種提升(lift),提供了比指針更高級的行為,相當于一種智能指針,他可以根據不同類型的數據結構來實現不同的++,--等操作;
? ? ? (2)迭代器返回的是對象引用而不是對象的值,所以cout只能輸出迭代器使用*取值后的值而不能直接輸出其自身。
? ? ? (3)在設計模式中有一種模式叫迭代器模式,簡單來說就是提供一種方法,在不需要暴露某個容器的內部表現形式情況下,使之能依次訪問該容器中的各個元素,這種設計思維在STL中得到了廣泛的應用,是STL的關鍵所在,通過迭代器,容器和算法可以有機的粘合在一起,只要對算法給予不同的迭代器,就可以對不同容器進行相同的操作。

? ? ? ?(4)在用迭代器執行erase,insert等函數時,迭代器的指針會被釋放掉,從而不能繼續使用,如果繼續使用,則會報錯;

指針:
? ? ? ??指針能指向函數而迭代器不行,迭代器只能指向容器;指針是迭代器的一種。指針只能用于某些特定的容器;迭代器是指針的抽象和泛化。所以,指針滿足迭代器的一切要求。
? ? ??? 總之,指針和迭代器是有很大差別的,雖然他們表現的行為相似,但是本質是不一樣的!一個是類模板,一個是存放一個家伙的地址的指針變量。

?

總結

以上是生活随笔為你收集整理的C++迭代器使用错误总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。