как сопоставить две переменные QList в Qt - PullRequest
0 голосов
/ 28 октября 2018

Я хочу сравнить два Qlist, скажем

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

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

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

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

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

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

1 Ответ

0 голосов
/ 28 октября 2018

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

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

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

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

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

...