qhash ::는 메소드 사례에 민감하거나 사례 인화성이 포함되어 있습니까?
문제
나는있다 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()
John T가 언급 한 것처럼 사례에 민감합니다. 코드가 없으면 알아낼 것이별로 없습니다. 당신은 그것이 그것을하는 것을 상상할 수 있습니다 ==
키 사이.
비 존재하는 요소에 액세스하는 것을 잊지 마십시오. []
해시에서 빈 항목을 생성하면 버그가 발생할 수 있습니다. contains
해시에 항목을 삽입하지 않으며 value
다른 팁
그것은 사례에 민감합니다. 여러 소스에서 데이터를 처리하고이를 비교하는 일반적인 관행은 먼저 모든 것을 동일한 형식으로 변환하는 것입니다. 일반적으로 비교 전에 모든 소문자를 만드는 것이 포함됩니다.
이것은 특히 로그인을 처리하기위한 웹 사이트 또는 응용 프로그램의 사용자 입력을위한 일반적인 관행입니다.페크 박'상황을 쉽게 만들고 사용자가 더 쉽게 만듭니다.
한 가지 해결책은 서브 클래스 일 수 있습니다 QString
그리고 operator==
Case Insensitive Mode와 비교하여 사용합니다 Qstring :: 비교.
그러나 해결책 존 t 그것이 당신의 제약 조건에 맞으면 확실히 더 좋습니다.
제휴하지 않습니다 StackOverflow