我正在尝试创建一个可以填充类实例的集合。我认为对集合的要求是可以比较元素,因此在这种情况下,我需要告诉我的班级如何比较它们。我创建了以下类:
class Myclass
{
public:
Myclass(int i):storedval(i) {}
int getval(){return storedval;}
friend bool operator> (Myclass &first, Myclass &second)
{
return first.getval()>second.getval();
}
friend bool operator< (Myclass &first, Myclass &second)
{
return first.getval()<second.getval();
}
private:
int storedval;
};
但是当我尝试将实例添加到这样的集合时:
Myclass a(50);
set<Myclass> Bunchofclasses;
Bunchofclasses.insert(a);
它给了我一堆错误文本,我认为告诉我它不理解 > 和 < 运算符。这应该如何正确完成?