Re: [STL ] 請問List

看板C_and_CPP作者 (累人啊....)時間16年前 (2009/07/15 05:03), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串6/10 (看更多)
※ 引述《iamivers0n (啾東)》之銘言: : 用的時候就: : find_if(Token_Place.Get_First_Ob_ID(), : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : Token_Place.Get_Last_Ob_ID(), : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 前兩個參數記得傳iterator@@ : Find_Ob_by_ID(pb->Name)); : 傳進去做compare的functor不一定要用template阿@@ 不好意思,再次打擾,我照著i的寫法代進去試,結果錯誤 error C2100: 不合法的間接取值 error C2664: 'bool Find_Ob_by_ID::operator ()(TP_Gra &)' : 無法將參數 1 從 'int' 轉換成 'TP_Gra &' 我也不知道為什麼(其實這部份的原理我也不是很懂) 所以我又試了一個比較直覺的方法 我在原來的class加了 Contents::iterator begin(){return Load.begin();} Contents::iterator end(){return Load.end();} 然後主程式把find_if那裡改成 for (list<TP_Gra>::iterator Iter=Token_Place.begin(); Iter=Token_Place.end(); Iter++{...(只是先測試會不會過而已)} 結果還是錯誤 error C2451: 型別 'std::list<_Ty>::_Iterator<_Secure_validation>' 的條件式運算 式不合法; 不能是整數型別 看起來應該是紅色的地方出了問題,不過我也不知道怎麼改....@@ 請問以上的兩種方法應該怎樣改才對呢??謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28

07/15 13:22, , 1F
關於第一點的話,要確定型別是int 我是照你寫的改的@@
07/15 13:22, 1F

07/15 13:22, , 2F
因為我沒看到那部分的實做
07/15 13:22, 2F

07/15 13:25, , 3F
呃,是TP_Gra&
07/15 13:25, 3F

07/15 13:26, , 4F
你可能要把型別的問題搞清楚@@
07/15 13:26, 4F

07/15 14:31, , 5F
就list內的物件型態是TP_Gra,然後TP_Gra內的ID屬性是int
07/15 14:31, 5F

07/15 14:32, , 6F
我也不知道是哪裡不對...@@
07/15 14:32, 6F

07/15 14:51, , 7F
typedef list<TP_Gra>::iterator Iter = ....
07/15 14:51, 7F

07/15 17:28, , 8F
????
07/15 17:28, 8F

07/16 10:29, , 9F
打錯,應該是 typename >_<
07/16 10:29, 9F
文章代碼(AID): #1ANMCJlr (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1ANMCJlr (C_and_CPP)