无法使用 QPoint 作为 QHASH 密钥

use*_*914 3 c++ qt qt4 qt5

我尝试使用这段代码:

\n\n
QPoint pt;\nQHash<QPoint, double> hexes;\nhexes.contains(pt);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到错误:

\n\n
error: no matching function for call to \xe2\x80\x98qHash(const QPoint&)\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n\n

但如果我用“int”替换“QPoint”,它编译得很好。是否可以使用 QPoint 作为 QHash 键类型?

\n

gal*_*tte 5

散列qHash函数没有为 定义QPoint,但您可以使用编写一个QPair<int,int>

inline uint qHash (const QPoint & key)
{
    return qHash (QPair<int,int>(key.x(), key.y()) );
}
Run Code Online (Sandbox Code Playgroud)