Qt QHash::contains方法区分大小写还是区分大小写?

Qt QHash::contains方法区分大小写还是区分大小写?,qt,qstring,qhash,Qt,Qstring,Qhash,我有一个QHash。 我使用以下表达式检查QHash::keys()中是否存在值 //programme QHash<QString,QString> samplehash; QString value = "somevalue"; if(samplehash.contains(value)) // Condition - 1 { //some code } //程序 QHash-samplehash; QString value=“somevalue”; if(sampleha

我有一个
QHash
。 我使用以下表达式检查
QHash::keys()
中是否存在值

//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
 //some code
}
//程序
QHash-samplehash;
QString value=“somevalue”;
if(samplehash.contains(value))//条件-1
{
//一些代码
}

有时上述条件匹配,有时不同大小写的相同字母不匹配。
QHash::contains
方法是否区分大小写?

它区分大小写。处理来自多个数据源的数据并对其进行比较的常见做法是首先将其全部转换为相同的格式,这通常涉及在比较之前将所有内容都小写

这是一种常见做法,尤其是在处理登录或应用程序中的用户输入的网站上,以避免旧的“”情况并使用户更容易使用。

QHash.contains()
如John T所述,区分大小写。如果没有代码,就没有太多问题需要解决。你可以想象它在按键之间做一个
=


请不要忘记,通过
[]
访问不存在的元素会在散列中创建一个空条目,这可能是导致错误的原因
contains
不会在散列中插入条目,value

一种解决方案可以是子类化
QString
并重写
运算符==
以使用不区分大小写的模式进行比较


但是,如果John T的解决方案符合您的约束条件,它肯定会更好。

但是,这种比较有时有效,有时无效。我知道,QHash中的密钥不会改变。值部分,有时可以是小写或大写。这对我不起作用<代码>运算符==未被调用。(当然,我重载了被调用的全局
qHash
函数。)好的,很高兴知道,操作符似乎是由