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

被折叠的 条评论
为什么被折叠?



