... 이런키가 사용자 정의 객체 인 stdext :: hash_map을 사용하는 방법은 무엇입니까? STL과 C 형 ++의 hash_map을 사용
class MyKeyObject
{
std::string str1;
std::string str2;
bool operator==(...) { this.str1 == that.str1 ... }
};
class MyData
{
std::string data1;
int data2;
std::string etcetc;
};
...
MyKeyObject a = MyKeyObject(...);
MyData b = MyData(...);
stdext::hash_map <MyKeyObject, MyData> _myDataHashMap;
_myDataHashMap[ a ] = b;
나는 오류의 전체 부하를 얻을. 여기에 처음 세 ...
오류 1 오류 C2784은 : ' 표준 : 운영자 < (const를 표준 : _ 트리 < _Traits이> &, const를 표준 : _ 트리 < _Traits> &)를 bool로 '에 대한되지 를 추론 템플릿 인수 수'const를 MyKeyObject 'C'에서 'const를 표준 : _ 트리 < _Traits> &을 : \ 프로그램 파일은 마이크로 소프트 비주얼 스튜디오 8 \ VC의 \는 \ 기능 143
을 포함 \오류 2 오류 C2784 : 'const를 표준에 대한 템플릿 인수를 추론 할 수 없습니다 :' 는 표준 : 운영자 < (const를 표준 : < _Elem, _Traits을 basic_string, _Alloc이> &, CONST _Elem *)는 bool에 ' : basic_string < _Elem, _Traits, _Alloc> & const를 태스킹 :: MyKeyObject '에서'C : \ 프로그램 파일 \ 마이크로 소프트 비주얼 스튜디오 8 \ VC의 \ \ 기능 (143)
오류 3 오류 C2784을 포함한다 : ' bool std :: operator < (CONST _Elem *, const를 표준 : < _Elem, _Traits을 basic_string, _Alloc는> &) '에 대한 템플릿을 인수를 추론 할 수없는'const를 MyDataObject 'C' 에서 'const를 _Elem의 * : \ 프로그램 파일은 시각적 인 마이크로 소프트 \ 스튜디오 8 \ VC의 \ 내가 int로 같은 간단한 뭔가 키를 설정하면 \ 모두가 잘
143
...
입니다 기능이 포함됩니다.
내가 뭘 잘못하고 있니?! 템플릿을 가지고 뭔가를해야 할 필요가 있을까요?
이와 같은 맞춤 키 개체를 사용하여 데이터에 액세스하는 더 빠른 (빠른) 방법이 있습니까?
'hash_map' 오래된 확장 기능입니다. tr1의'unordered_map' 또는 Boost를 사용하십시오. – GManNickG