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<,解决方法:比较函数里不要出现相等判断。