看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
iamivers0n:關於第一點的話,要確定型別是int 我是照你寫的改的@@ 07/15 13:22
iamivers0n:因為我沒看到那部分的實做 07/15 13:22
iamivers0n: 呃,是TP_Gra& 07/15 13:25
iamivers0n:你可能要把型別的問題搞清楚@@ 07/15 13:26
tyc5116:就list內的物件型態是TP_Gra,然後TP_Gra內的ID屬性是int 07/15 14:31
tyc5116:我也不知道是哪裡不對...@@ 07/15 14:32
avhacker:typedef list<TP_Gra>::iterator Iter = .... 07/15 14:51
tyc5116:???? 07/15 17:28
avhacker:打錯,應該是 typename >_< 07/16 10:29