如何在Qt中comapre两个QList变量

Eul*_*ler 2 qt qlist

我想比较两个 Qlist 说

QList<QSerialPortInfo> port1;
QList<QSerialPortInfo> port2;
Run Code Online (Sandbox Code Playgroud)

我想在if这样的条件下实施它

if (port1 != port2)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)

但它似乎不像我已阅读 QList 的文档并且有这个成员那样工作

operator!=(const QList<T> &other) const
Run Code Online (Sandbox Code Playgroud)

任何想法如何实现它,请不要去说哦,我不会给你解决方案,但这里有一个提示。我不是学生,这也不是家庭作业。我正在用Qt做我自己的项目。多谢你们。

G.M*_*.M. 5

QList<T>::operator!=文档中...

该函数要求值类型具有operator==() 的实现。

不幸的是,没有有效的operator==定义QSerialPortInfo,但你可以轻松地实现你自己的......

bool operator== (const QSerialPortInfo &lhs, const QSerialPortInfo &rhs)
{
  return lhs.manufacturer() == rhs.manufacturer()
    && lhs.serialNumber() == rhs.serialNumber();
}
Run Code Online (Sandbox Code Playgroud)

显示的代码假定QSerialPortInfo实例可以通过其制造商和序列号唯一标识。