要對vector中的自定義類型進行排序,首先需要提供一個函數bool comp(const Interval & a, const Interval & b) 來定義類型的排序准則
然后調用std::sort(intervals.begin(),intervals.end(),comp) 寫了幾個小的測試用例也都通過了,但是當集成在類中的時候編譯遇到問題,
Line 30: no matching function for call to 'sort(std::vector<Interval>::iterator, std::vector<Interval>::iterator, <unresolved overloaded function type>)'
剛開始以為是類型不對,改用指針也不行,換用qsort進行排序也不行,折騰了好長時間終於找到資料http://blog.csdn.net/flybywind/article/details/7536311
原來當comp作為類的成員函數時,默認擁有一個this指針,這樣和sort函數所需要使用的排序函數類型不一樣。解決方法是將comp改為非成員函數,或者改用靜態函數。