我想跟隨某人試圖簡化C++排序參考的鏈接http://www.cplusplus.com/forum/beginner/4817/但是我不能讓bool
運算符函數按照他的方式進行編譯。使用比較函數對對象的向量排序
我有事件對象的向量。我想根據事件開始時間對矢量進行排序。如果開始時間是數字,這將更容易,但它們是字符串,所以我必須編寫函數來轉換爲uint64_t
,我的所有代碼直到這種嘗試都是按照它應該的方式工作的。這裏是我試圖去上班代碼:
的布爾函數:
bool EWriter:: operator() (Event &a, Event &b){
return (stringToTime(stringReturnWrap(a.getBeginTime())) < stringToTime(stringReturnWrap(b.getBeginTime())));
}
此代碼編譯,但我無法弄清楚如何給它一個名字,所以我不能引用它這種排序。此外,我寧願超載運算符<
,但我一直得到一個錯誤,它需要第三個參數。
這裏是我的排序:
sort(events->begin(), events->end(), someFunctionName);??
略無關的是,我知道我應該在參數傳遞給使用const的,但我不能把事件類的功能,如果我讓他們實現。
你忘了const'岬加上'你'活動&a'和'活動&b'? – dasblinkenlight 2011-12-20 20:45:37
'Event :: getBeginTime()'應該聲明爲'const'。如果這不是你的代碼,也許你可以讓作者修復它。如果它是你的代碼,請修復它! 8v) – 2011-12-20 20:46:18