c++ - QRect 的 qHash 函数

标签 c++ qt hash

计算QRectqHash 值的最佳方法是什么?我需要使用 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/

相关文章:

ruby - 从不同嵌套的哈希中提取特定键

c++ - 如何在 Windows 上使用 GCC 4 构建 LLVM?

c++ - gcc 链接的默认库?

c++ - 如何在 Qt 项目 View 中为单个单元格设置委托(delegate)?

qt - 如何在 QT Creator 中使用 mingw 在多核上编译

c# - 手绘IDE模块?

javascript - 使用 CryptoJS 对密码进行哈希处理然后使用 php password_hash() 的安全性

ruby - 扁平化 Ruby 数组

c++ - 此代码会导致内存泄漏问题吗?

c# - 我如何将 C# string[] 编码(最好在 SWIG 中)到 C++ string*?