计算QRect
的qHash
值的最佳方法是什么?我需要使用 QRect
(可能还有 QRectF
)作为 QCache
的键。现在我正在使用这样的东西:
inline uint qHash(const QRect & r)
{
return qHash(QByteArray::fromRawData((const char*)&r, sizeof(r)));
}
它似乎可以工作,但我不喜欢将它转换为一些原始字节,而且由于 QRect 不是一个简单的结构,这可能会在未来的 Qt 版本中早早崩溃。
顺便说一句。我不存储哈希值,因此它不必是持久的或跨平台的。但它确实需要可靠且快速。
谢谢。
最佳答案
我会简单地做 return qHash(QString("%1,%2,%3,%4").arg(r.x()).arg(r.y()).arg(r.width( )).arg(r.height())))
我还找到了这个解决方案:http://thesmithfam.org/blog/2008/01/17/using-qrect-with-qhash/ (阅读评论)
关于c++ - QRect 的 qHash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120675/