QHashがある::メソッドの大文字と小文字の区別の有無が含まれていますか?

StackOverflow https://stackoverflow.com/questions/1078004

  •  21-08-2019
  •  | 
  •  

質問

私はQHash<QString,QString>を持っています。 私は値がQHash::keys()にあっているか否か確認するには、次の式を使用します。

//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
 //some code
}

時々、上記の条件は、時々ではない別のケースと同じ文字のために、一致します。 QHash::contains方式の大文字と小文字を区別していますか?

役に立ちましたか?

解決

QHash.contains()ジョンTは、上述のように大文字と小文字が区別されます。コードなしで把握する過言ではありません。あなたは、キーの間==をやって、それを想像することができます。

[]を経由して非実在の要素にアクセスすると、ハッシュに空のエントリを作成することを忘れないでください、これはあなたのバグを引き起こすものであるかもしれません。 containsはハッシュへのエントリを挿入しません、どちらも

valueありません

他のヒント

これは、大文字と小文字が区別されます。複数のソースからのデータを処理し、それを比較するための一般的な方法は、通常、比較の前に小文字にすべてを行う必要最初と同じ形式にすべてを変換することです。

これは、古い「<のhref = 『http://en.wikipedia.org/wiki/PEBKAC』のrel = "nofollowをnoreferrerを避けるために、特にアプリケーションでログインを処理するためのウェブサイト、またはユーザー入力に、一般的に行われています「> PEBKAC の」状況や、ユーザーのために、それが容易になります。

一つの解決策は、<のhref = "https://doc.qt.io/qt-5/qstring.html#compare-を使用して、QStringをサブクラス化し、大文字と小文字を区別しないモードとの比較を行うためのoperator==を上書きすることができ2" nofollowをnoreferrer "= REL"> QStringの:: を比較します。

それはあなたの制約に合う場合は、

しかし、のジョン・T のの解決策は間違いなく良いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top