看板 C_and_CPP 關於我們 聯絡資訊
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
tinlans:拿掉 binary_function 會失去 Adaptable Binary Function 11/26 20:23
tinlans:的特性,在某些特定場合會不能用而已。 11/26 20:24