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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有指针为何还要STL迭代器

發布時間:2024/9/27 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有指针为何还要STL迭代器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

指針和STL迭代器

  • 1、迭代器
  • 2、迭代器和指針的區別
  • 3、迭代器產生原因

1、迭代器

Iterator(迭代器)模式又稱 Cursor(游標)模式,用于提供一種方法順序訪問一個聚合
對象中各個元素, 而又不需暴露該對象的內部表示。或者這樣說可能更容易理解:Iterator 模
式是運用于聚合對象的一種模式,通過運用該模式,使得我們可以在不知道對象內部表示的情況
下,按照一定順序(由 iterator 提供的方法)訪問聚合對象中的各個元素。
由于 Iterator 模式的以上特性:與聚合對象耦合,在一定程度上限制了它的廣泛運用,一
般僅用于底層聚合支持類,如 STL 的 list、vector、stack 等容器類及 ostream_iterator 等擴
展 iterator。

2、迭代器和指針的區別

迭代器不是指針,是類模板,表現的像指針。他只是模擬了指針的一些功能,通過重載了
指針的一些操作符,->、、++、–等。迭代器封裝了指針,是一個“可遍歷 STL( Standard Template
Library)容器內全部或部分元素”的對象, 本質是封裝了原生指針,是指針概念的一種提升
(lift),提供了比指針更高級的行為,相當于一種智能指針,他可以根據不同類型的數據結構
來實現不同的++,–等操作。
迭代器返回的是對象引用而不是對象的值,所以 cout 只能輸出迭代器使用取值后的值而
不能直接輸出其自身。

3、迭代器產生原因

Iterator 類的訪問方式就是把不同集合類的訪問邏輯抽象出來,使得不用暴露集合內部的
結構而達到循環遍歷集合的效果。

總結

以上是生活随笔為你收集整理的有指针为何还要STL迭代器的全部內容,希望文章能夠幫你解決所遇到的問題。

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