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>())
}
尝试比较用户定义的两个向量 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>())
}