typedef pair < long , pair <bool ,long > > t;
vector <t> time ;
,我需要使用std :: sort()函數來排序上述載體,但使用一個定製的比較函數。我寫了一個版本但沒有正常工作。你能指出我的錯誤嗎?
bool comp (const t &a , const t &b){
if (a.first < b.first)
return a.first > b.first ;
else if (b.first < a.first)
return b.first > a.first ;
else if (a.first == b.first)
{
if (a.second.first == false && b.second.first == true)
return a.first > b.first ;
else if (a.second.first == true && b.second.first == false)
return b.first > a.first ;
else
return a.first > b.first ;
}
}
inside main(){
sort (time.begin() ,time.end() ,comp) ;
}
定製案例:
Before sorting : vector time
10 1 1
100 0 1
100 1 2
200 0 2
150 1 2
500 0 2
200 1 2
300 0 2
After Sorting :
10 1 1
100 0 1
100 1 2
150 1 2
200 0 2
200 1 2
300 0 2
500 0 2
在此先感謝。
這個問題可以使用英文描述,確切地說你需要如何排序這些東西 - 即:什麼使得一個「t」比另一個「少」。代碼似乎對這個問題有點困惑。 – cHao
請正確縮進您的代碼,目前無法讀取。 –