看板 EE_DSnP 關於我們 聯絡資訊
教授說用iterator的目的是不要讓人家知道node是怎麼做的 是說在list的member function裡面最好不要出現 [某node]->_next 這樣的東西比較好吧? 可是例如POP_FRONT()的工作是: 把頭指到頭的NEXT,再把新頭的PREV指到尾巴,把尾巴的NEXT指到新頭 最後把舊頭DELETE掉 那,如果不能用[node]->_next這樣的東西,光用iterator來做有可能嗎? iterator那些overload的operator似乎沒有這樣的功能,異哉。 -- 春苑樹雪菜萌苗,雀兒喜上夏枝梢;藍眼望盡黃泉路,只盼儷人一美笑長巾初解投送抱,金珠麗葉賀新好;神代仙眷且羨嫉,長伴相隨誓到老。 靜馬千華留秋晚,冬風不止三鄉道;紅枝立約攜手情,今此空餘泣嚎啕。 姬宮千歌音悠悠,櫻井奏樂聲裊裊;奈何天令伊人變,飛離斯愛離斯去。 結城AIRA→ 悲慟獨泣無人應,白晝夢盡皆空語。 ←美鄉あき Kalafina→ 紅月旋響戚音樂,黯然步上鎮魂旅 ←飛 蘭 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.147.96
e124553423:應該是外面使用者使用時不能知道有node的class存在, 11/26 17:01
e124553423:裡面處理還是要用到吧 11/26 17:01
takua624:所以我們寫程式的時候可以用NODE直接操作囉? 11/26 17:02
takua624:那"外面的使用者"到底是誰啊... 11/26 17:02
e124553423:就class scope以外的吧XD,其他class的function或main 11/26 17:20
e124553423:之類的 11/26 17:20
takua624:嗯。那有辦法操作iterator指到的那個node嗎? 11/26 17:22
例如 iterator it = begin(); it++; 現在it指到的是LIST裡面第二個node,如果我想修改這個node的_next 有辦法用it的operator來操作嗎? 還是一定要it._node->_next這種看起來很不文明的方法? ※ 編輯: takua624 來自: 61.57.147.96 (11/26 17:25)
e124553423:就我的理解應該是無法避免,有錯請指證~ 11/26 17:29
takua624:好,那就這麼幹吧! 11/26 17:37
ric2k1:ListNode 是 List 的好朋友,所以也可以直接 _head->_next 11/27 01:01
takua624:嗯,感謝教授。我以為是"建議"不要這麼做 11/27 10:03