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() John T가 언급 한 것처럼 사례에 민감합니다. 코드가 없으면 알아낼 것이별로 없습니다. 당신은 그것이 그것을하는 것을 상상할 수 있습니다 == 키 사이.

비 존재하는 요소에 액세스하는 것을 잊지 마십시오. [] 해시에서 빈 항목을 생성하면 버그가 발생할 수 있습니다. contains 해시에 항목을 삽입하지 않으며 value

다른 팁

그것은 사례에 민감합니다. 여러 소스에서 데이터를 처리하고이를 비교하는 일반적인 관행은 먼저 모든 것을 동일한 형식으로 변환하는 것입니다. 일반적으로 비교 전에 모든 소문자를 만드는 것이 포함됩니다.

이것은 특히 로그인을 처리하기위한 웹 사이트 또는 응용 프로그램의 사용자 입력을위한 일반적인 관행입니다.페크 박'상황을 쉽게 만들고 사용자가 더 쉽게 만듭니다.

한 가지 해결책은 서브 클래스 일 수 있습니다 QString 그리고 operator== Case Insensitive Mode와 비교하여 사용합니다 Qstring :: 비교.

그러나 해결책 존 t 그것이 당신의 제약 조건에 맞으면 확실히 더 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top