vector排序問題

要對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改成非成員函數,或者改用靜態函數。
相關文章
相關標籤/搜索