2010-02-21 105 views
19

什麼是C++中的迭代器?什麼是迭代器,C++?

+0

http:// stackoverflow。com/questions/1064983 /不同類型的迭代器/ 1065528#1065528,http://www.sgi.com/tech/stl/Iterators.html – 2010-02-21 07:32:57

+1

這是很好的信息來源:http://www.cs .helsinki.fi/u/tpkarkka/alglib/k06/lectures/iterators.html – Manuel 2010-02-21 08:10:21

+0

http://www.cplusplus.com/reference/iterator/ – 7bisso 2016-10-18 09:17:13

回答

15

迭代器是一種遍歷對象集合的方法。通常,它們允許您按照與使用指針訪問經典C數組類似的方式順序訪問STL(標準模板庫)容器。要通過迭代器訪問對象,可以像C指針一樣將其解引用。要訪問集合中的下一個對象,可以使用increment(++)運算符。一些容器有多種迭代器,允許你以不同的方式遍歷集合。

2

http://en.wikipedia.org/wiki/Iterator

的東西,可以讓你經歷的一切在一個陣列,一個接一個。我認爲你在談論的是「for_each」......據我所知,C++實際上並不像C#這樣的語言具有「foreach」。但是,標準模板庫有它。

+1

它肯定比數組更多,實際上是迭代器的目標C++將抽象集合本身及其屬性抽象出來,以便處理迭代器的算法可以用於任何類型的集合:) – 2010-02-21 12:46:11

1

它們是序列中位置的表示。它們本身就不是好奇心,但是當它們被解除引用時,它們就會導致序列中包含的值在它所代表的位置上。

13

儘管最初看起來相當明顯,但實際上這是一個比您可能意識到的更深的問題。與Paul McJones一起,Alexander Stepanov(原創設計師,對於任何不知道這一點的人)最近發佈了一本名爲編程的元素(又名EOP)。該書的第6章全部專門用於迭代器,本書的其餘部分也與迭代器密切相關。任何真正想詳細瞭解迭代器的人都可以考慮閱讀本書。

警告:EOP爲而不是爲心灰意懶。這是相對較短(約260頁),但相當密集。從經驗上講,早起有點令人不安。我對第一章的初步反應或多或少是「好的,這很明顯,它不值得閱讀,畢竟在上週之前我開始編程!」

幸運的是,我確實看過練習,並試圖做一對夫婦 - 儘管我認爲這些科目很明顯,但這些練習需要嚴格的證明。這有點像被要求從數學意義上證明水是潮溼的。你最終只需要閱讀幾章就可以瞭解你自己的先入爲主的觀點,即你已經知道答案,所以你可以看看真正的問題 - 「溼」的真正含義是什麼; 「潮溼」的基本特徵是什麼?

+2

這樣就能找到像這樣的答案。 +1 – 2010-02-21 08:36:43

+0

感謝您指向我應該知道的書(如果沒有閱讀)。 – 2010-02-21 08:48:37

2

從p。 80 Accelerated C++的:

的迭代是

  • 標識的容器和容器中的
  • 讓我們檢查存儲在該元件
  • 提供操作用於移動值的元素的值在容器中的元素之間
  • 以對應於容器有效處理的方式限制可用操作