이를 해결하기 위해서는 각 행(해시)에 대해 고유한 값을 반환하는 해시 함수를 사용하면 편리합니다.
C++11에는 해시(hash)를 가져오기 위한 기본 제공 기능이 있습니다.  < br /> 앞으로 해시 수를 계산하려면 C++ 11에도 등장한 unordered_map 해시 테이블을 사용하는 것이 좋습니다. 맵 사용에 대한 자세한 내용은 동적 데이터 구조 -> 연관 배열: 지도.

문자열 "test"에서 해시를 가져오는 예:

해시<문자열> hash_fn;
size_t str_hash = hash_fn("test" );
cout<<str_hash;


결과는 "2949673445"이므로 각 고유 문자열에서  unordered_map의 키로 사용할 수 있는 고유한 해시를 얻을 수 있습니다.

문자열 해싱은 문자열을 각 문자열에 대해 고유한 숫자(충돌 가능성은 무시할 수 있다고 가정함)로 표현하는 것입니다. 이를 통해 중요한 데이터(암호와 같은)를 문자열이 아닌 숫자로 데이터베이스에 저장할 수 있습니다. 이렇게 하면 공격자가 암호 데이터베이스에 대한 액세스 권한을 얻은 경우 암호를 보호할 수 있습니다. 암호 자체는 얻지 못하고 숫자 표현만 얻을 수 있으며 해시로 문자열을 얻는 것은 거의 불가능합니다(특히 해싱 알고리즘을 알지 못하는 경우). ). 
다항식 해시는 프로그래밍 경쟁 문제에서 가장 자주 사용됩니다.
문자열 S의 해시 함수를 결정하는 가장 좋은 방법 중 하나는 다음과 같습니다.
h(S)  =  S[0]  +  S[1] * P  +  S[2] * P^2  +  S[3] * P^3  +  ...  +  S[N] * P^N