作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [情報] Hash::iterator 要怎麼寫?
時間Wed Jan 13 15:41:59 2010
上學期的文章,repost 一下...
※ 引述《ric2k1 (Ric)》之銘言:
有人在問要怎麼寫... 好吧, 只剩幾天了就來提示/建議一下...
1. iterator 就是要用來 iterate Hash 裡面 valid 的 HashNode, 它必須能夠
往前 or 往後找到下一個 HashNode, 並且可以 return 指到的 HashNode
2. 那麼要怎麼找到 Hash 裡面的 valid HashNode 呢? 比較簡單的作法就是紀錄
下來在 iterate 的是哪個 Hash... 怎麼記? 宣告一個 Hash "obj" 在 class
iterator 裏頭嗎? <== 會出事....!%&^%#!&^%$ (消音)
3. 那什麼時候將目前在 traverse 的 Hash 記到 iterator 裡呢? 在 iterator
的 constructor 裡傳入參數嗎? OK, 但是如:
Hash::iterator hi;
沒有傳東西怎麼辦?
(Hint) 那 "hi = hash.begin()" 總可以 work 了吧?
4. 除了紀錄 Hash 之外, 也要記錄目前走到哪裡...
(Hint) 我是用兩個 size_t 的 index 來記的
[重要] 其實 Hash::iterator 沒寫 BDD 也可以 work... 只是 reset() 中必須能
走過所有的 HashNodes...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.46.108
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.241