Re: [問題] stl priority_queue less<MyClass*> ?

看板C_and_CPP作者 (小烏龜)時間14年前 (2009/11/26 10:44), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串4/5 (看更多)
boost library先放著,以後有空再去熟悉>"< 我的寫法: struct TestArg3 { bool operator()(MyClass * c1, MyClass * c2){ return a->x < b->x; } }; 傳入priority_queue,如下: priority_queue<MyClass*, vector<MyClass*>, TestArg3 > test; 就ok了 程式功力不夠厚,老實說對template還不是太熟悉… 參考less的原始碼, struct less : public binary_function<_Ty,_Ty,bool> 拿掉後面的繼承好像也沒事 那些const有的沒的 也有點不求甚解… 也不是很懂為何operator()要包在struct裡, 估計應該是要傳typename _Py給priority_queue… 就估且當做固定寫法吧>"< 不管怎樣,至少解決我的問題了:p 感謝大家的回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.22.10

11/26 20:23, , 1F
拿掉 binary_function 會失去 Adaptable Binary Function
11/26 20:23, 1F

11/26 20:24, , 2F
的特性,在某些特定場合會不能用而已。
11/26 20:24, 2F
文章代碼(AID): #1B3UjuJq (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B3UjuJq (C_and_CPP)