c++ 向量与用户定义 类 的比较? (==, <, >)

c++ vector comparison with user defined classes? (==, <, >)

尝试比较用户定义的两个向量 class,如下所示:

#include <vector>
using namespace std;
struct ExampleClass {
    bool operator==(ExampleClass right) {
        return true;
    }
};
int main() {
    if (vector<ExampleClass>() == vector<ExampleClass>())
        return 0;
    else
        return 1;
}

我似乎无法仅使用用户定义的 < 运算符使其工作 class;但是,我可以通过编写一个自定义运算符来比较所述 class 的两个向量来使其工作,但我不清楚这是否是必须要做的,或者我是否只是误解了向量比较运算符. 如果可能的话,我还想让它与 < 和 > 一起使用。我可以只编写一个模板运算符来比较两个向量,让它们比较每个元素——但这对我来说似乎是一种解决方法,因为我不了解某些东西。 请向我解释我做错了什么:)

我想你正在寻找这样的东西:

#include <vector>

using namespace std;

struct ExampleClass {
    bool operator==(ExampleClass right) const {
        return true;
    }
};

int main() {
    return (vector<ExampleClass>() != vector<ExampleClass>())
}