template<class KEY, class VALUE>
unsigned int HashMap<KEY, VALUE>::hashCode(KEY key)
{
unsigned int k = key & 0xffffffff; //error: no match for ‘operator&’ in ‘key & 4294967295u’
k += ~(k<<9);
k ^= (k>>14);
k += (k<<4);
k ^= (k>>10);
return k;
};
알다시피, 객체의 비트를 조작하여 hashCode를 구현하려고합니다. 분명히 비트 연산자는 사용자 정의 된 객체에 쉽게 적용되지 않습니다.HashMap 구현 : --- hashcode
나는 메모리 위치를 고려하여 임의의 유형의 객체 비트를 가져 와서 원하는대로 비트를 조작하려고합니다. 그러면 비트를 int로 재 해석하고 비트 연산자를 int에 적용합니다.
좋은 생각 같습니까? 그리고 주어진 메모리 위치에서 어떤 종류의 객체로부터 비트를 취할 수 있습니까?
고맙습니다.
이것은 모두 사실입니다. – StilesCrisis