Как сопоставить две переменные QList в Qt

Я хочу сравнить два Qlist сказать

QList<QSerialPortInfo> port1;
QList<QSerialPortInfo> port2;

Я хочу реализовать это в if состояние такое, что

if (port1 != port2)
{
// do something
}

но кажется, что это не работает так, что я прочитал документацию для QList и есть этот член

operator!=(const QList<T> &other) const

Любая идея, как реализовать это, пожалуйста, не идите и скажите о, я не собираюсь дать вам решение, но вот совет. Я не студент, и это не домашнее задание. Я делаю свой собственный проект в Qt. Спасибо, парни.

1 ответ

От QList<T>::operator!= документация...

Эта функция требует, чтобы тип значения имел реализацию оператора ==().

К сожалению нет действительного operator== определено для QSerialPortInfo но вы можете легко реализовать свой собственный...

bool operator== (const QSerialPortInfo &lhs, const QSerialPortInfo &rhs)
{
  return lhs.manufacturer() == rhs.manufacturer()
    && lhs.serialNumber() == rhs.serialNumber();
}

Показанный код предполагает, что QSerialPortInfo Экземпляр может быть однозначно идентифицирован его производителем и серийным номером.

Другие вопросы по тегам