c ++ векторное сравнение с пользовательскими классами?(==, <,>) - PullRequest
0 голосов
/ 13 октября 2018

пытается сравнить два вектора пользовательского класса, например так:

#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 голосов
/ 13 октября 2018

Я думаю, вы ищете что-то вроде этого:

#include <vector>

using namespace std;

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

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