感謝 firejox, legnaleurc, loveme00835 版友的幫忙
根據大家提供的關鍵字
我在網路上找到這份資料解決了我的問題
http://0rz.tw/hsD8F
簡單說就是用 functor 來取代 function (我也不太懂 第一次接觸這個東西)
還是不太知道為什麼 member function 必須是 static
而用 functor 卻不用
至於怎麼像 legnaleurc 版友說的 bind 一個 instance
可以麻煩再給多一點說明嗎 謝謝
用在我的例子 code 如下
class SA
{
....
struct doCompare
{
const SA& mySA;
doCompare(const SA& sa) : mySA(sa) {}
bool operator() (const int &i, const int &j){
return mySA.Gij[mySA.tempCompareStandard][i] >
mySA.Gij[mySA.tempCompareStandard][j];
}
};
.....
};
void SA::SomeFunction()
{
.....
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++) gainListSorted[i][j] = j;
tempCompareStandard = i;
sort(gainListSorted[i], gainListSorted[i]+size, doCompare(*this));
}
.....
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.233.240