clang:当 K 是指针时,使用 QHash<K,T> 而不是 QMap<K,T>

clang: Use QHash<K,T> instead of QMap<K,T> when K is a pointer

有警告

Use QHash<K,T> instead of QMap<K,T> when K is a pointer [clazy-qmap-with-pointer-key]

由 clang 制作。但是我无法 google 解释为什么 QHash 更可取......(在我的例子中,我的指针少于 100 个)。是否有关于该警告的任何说明?

我想说的原因是通常指针的顺序是无关紧要的(除非它们是同一数组中的指针)因此红黑树映射速度较慢,但​​没有提供任何重要的好处。

您正在使用 Clazy,这是一个工具(实际上是一个编译器插件),可以帮助 clang 在编译时更好地“消化”qt 语义...

clazy有一些规则,你违反的是第0级:

qmap-with-pointer-key

他们记录原因如下:

QMap has the particularity of sorting it's keys, but sorting by memory address makes no sense. Use QHash instead, which provides faster lookups.