invalid operator< 異常處理

Code:
#include <list>

using std::list;

class myClass {
public:
     int a;
     int b;
};

static bool Compare(const myClass * f, const myClass *t) // compare pointers to myClass
{
    if (f->a >= t->a)
       return true;
   else 
       return false;
}

int main() {
    std::list<myClass*> m;      // list holds pointers to myClass objects
    m.sort(Compare);
}

 

當m裏面的有相等的元素時,比較函數返回的是true,但是應該返回false,所以此時就會出現異常invalid operator<,解決方法:比較函數裏不要出現相等判斷。

發佈了29 篇原創文章 · 獲贊 20 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章