现在我有一个课程项目
class Item{
public:
short p; //profit
short w; //weight
bool *x; //pointer to original solution variable
void set_values (short p, short w, bool *x);
};
我需要比较两个不同的实例,以便检查每个实例的值并返回true / false
if (Item a < Item b){
//do something
}
我该怎么做?我一直在阅读cppreference,但我真的不明白该怎么做。
答案 0 :(得分:6)
非常简单,
bool Item::operator<(const Item& other) const {
// Compare profits
return this->p < other.p;
}
答案 1 :(得分:2)
要将左侧p
和w
与右侧p
和w
进行比较,请使用以下代码:
class MyClass
{
public:
short p;
short w;
friend bool operator<(const MyClass& lhs, const MyClass& rhs)
{
return lhs.p < rhs.p && lhs.w < rhs.w;
}
};
答案 2 :(得分:1)
例如,如果要比较p,代码应如下所示:
class Item {
private:
...
public:
friend bool operator < (const Item& lhs, const Item& rhs) {
return lhs.p < rhs.p;
}
};