台灣最大程式設計社群網站
線上人數
1998
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> C/C++ >> 請問,如何依照class成員變數做排序(運用sort()函數)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問,如何依照class成員變數做排序(運用sort()函數)
價值 : 20 QP  點閱數:860 回應數:2
樓主

伯勞鳥
門外漢
0 3
679 9
發送站內信

我的class是成員變數有一個struct,包在GA這個class裡面,是一個私有變數:
GA.h:



而我的 fitness_sort() 是要對populations這個向量中的fitness_1變數做排序,卻一直出現下列錯誤訊息:
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\predefined_ops.h|121|error: must use '.*' or '->*' to call pointer-to-member function in '((__gnu_cxx::__ops::_Iter_comp_iter<bool (GA::*)(const InDividual&, const InDividual&)>*)this)->__gnu_cxx::__ops::_Iter_comp_iter<bool (GA::*)(const InDividual&, const InDividual&)>::_M_comp (...)', e.g. '(... ->* ((__gnu_cxx::__ops::_Iter_comp_iter<bool (GA::*)(const InDividual&, const InDividual&)>*)this)->__gnu_cxx::__ops::_Iter_comp_iter<bool (GA::*)(const InDividual&, const InDividual&)>::_M_comp) (...)'|

感覺是在comp()函數那邊出問題,應該如何改呢?

我的GA.cpp中的population_sort()成員函數如下:


搜尋相關Tags的文章: [ C++ ] , [ sort ] , [ sort() ] , [ compare函數 ] ,
本篇文章發表於2016-08-13 22:21
1樓
最有價值解答

Raymond
檢舉此回應
GA::comp 必須是個 static 成員函式:


在呼叫函式 std::sort() 時, 第三個參數應該改成 &GA::comp:

建議不要用 using namespace std, 儘量習慣用 std:: 來前綴 C++ 標準函式庫裡的名字.

本篇文章回覆於2016-08-15 22:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

伯勞鳥
檢舉此回應
感謝 Raymond 大大的解答,謝謝!!
本篇文章回覆於2016-09-03 01:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.