#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<,解決方法:比較函數裏不要出現相等判斷。