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

时间:2018-10-13 02:48:31

标签: c++ vector comparison operator-keyword stdvector

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

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

仅使用用户定义类的<运算符,我似乎无法使其工作;但是,我可以通过编写一个自定义运算符来在所述类的两个向量之间进行比较来使其工作,但是我不清楚这是必须执行的操作还是只是误解了向量比较运算符。 如果可能的话,我也想将它与<和>一起使用。我可以编写一个模板运算符来比较两个向量,以使它们比较每个元素-但这对我来说似乎是一种变通办法,无法理解某些内容。 请向我解释我在做什么错:)

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找这样的东西:

#include <vector>

using namespace std;

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

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