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

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

本文关键字:gt lt 用户 向量 定义 比较 C++      更新时间:2023-10-16

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

#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;
}

我似乎无法仅使用用户定义类的<运算符使其工作;但是,我可以通过编写一个自定义运算符来比较所述类的两个向量来使其工作,但我不清楚这是否是必须做的,或者我只是误解了向量比较运算符。>一起工作。我可以只编写一个模板运算符来比较两个向量,让他们比较每个元素 - 但这对我来说似乎是一种解决方法,我不明白什么。 请向我解释我做错了什么:)

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

#include <vector>
using namespace std;
struct ExampleClass {
bool operator==(ExampleClass right) const {
return true;
}
};
int main() {
return (vector<ExampleClass>() != vector<ExampleClass>())
}