[問題] iterator的作用是什麼?

看板C_and_CPP作者 (輕子)時間9年前 (2014/11/27 23:46), 編輯推噓4(4011)
留言15則, 9人參與, 最新討論串1/1
不好意思,我想請教iterator是要怎麼用? 感覺起來好像就是for迴圈的index,或者說就是pointer的角色 為什麼還要分向前向後隨機等各種iterator? 時候宣告的時候還要依照int double之類的資料結構宣告 程式碼寫起來把直接數index還要長 要走訪整組數列我覺得用for_each甚至更簡潔一點 因為我一直沒有搞懂過到底要怎麼使用,還向各位請教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.213.123 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1417103194.A.F71.html

11/27 23:58, , 1F
我以為for_each是一種iterator
11/27 23:58, 1F

11/28 00:01, , 2F
你可以先研究一下什麼是STL容器
11/28 00:01, 2F

11/28 00:15, , 3F
map不是線性結構, 不用 iterator 要怎麼走遍全部?
11/28 00:15, 3F

11/28 00:28, , 4F
iterator是一般化的結果,不用知道容器的細節也能用
11/28 00:28, 4F

11/28 00:29, , 5F
不見得所有東西都可以index
11/28 00:29, 5F

11/28 00:29, , 6F
但是只要有foward_iterator就能夠走訪全部
11/28 00:29, 6F

11/28 03:41, , 7F
如果你常用STL容器跟algorithm的function,你就會知道了
11/28 03:41, 7F

11/28 12:43, , 8F
嗯...我再想看看好了!謝謝!
11/28 12:43, 8F

11/28 13:31, , 9F
我覺得是為了TMP才分的concept? 沒寫過所以不知道由來
11/28 13:31, 9F

11/28 13:31, , 10F
上面是說為什麼要分這麼多種,如果是為什麼要"使用"
11/28 13:31, 10F

11/28 13:32, , 11F
azureblaze已經解釋了,可參考 iterator pattern
11/28 13:32, 11F

12/01 01:26, , 12F
一個小建議:先模仿看過的例子使用,覺得不需要的地方就不用
12/01 01:26, 12F

12/01 01:27, , 13F
常用STL和<algorithm>,經驗和感覺就會慢慢建立了
12/01 01:27, 13F

12/01 01:30, , 14F
按下return才發現樓上已經說過一樣的話了... orz
12/01 01:30, 14F

12/01 19:11, , 15F
建立一個存取的抽像層
12/01 19:11, 15F
文章代碼(AID): #1KTqTQzn (C_and_CPP)