unordered_map
클래스 템플릿을 사용하고 있는데 클래스에 대한 사용자 지정 해시를 작성하고 싶습니다. 이 문서에는 내장 유형에 기본 해싱 함수가 제공된다는 내용이 나와 있습니다. 따라서 선언 할 경우 :tr1/unordered_map에 대한 내장 유형 해시 함수 액세스
std::tr1::unordered_map<std::string, int> foo;
자동으로 해시가 정의됩니다.
맞춤 해시 기능을 원한다면 Functor를 제공하는 좋은 예가 있습니다.
그러나 unordered_map
에 삽입/삭제의 키로 사용하려는 std::string
회원이있는 복잡한 클래스가 있다면 어떻게해야합니까? 내 허쉬를 다시 쓰고 싶지 않아. 이미 std::string
유형으로 작성된 것을 활용하고 싶습니다.
좋아, 그럼 할 수 있어야합니다 : std :: hash (mystring)? –
펑터를 인스턴스화해야합니다. 'std :: hash() (mystring)'이 작동해야합니다. –
좋아, 나는 이것을 시도하고 '해시'가 '표준'의 구성원이 아니라는 메시지를 받았습니다. 이것은 MacOS에서 g ++ 4.2.1을 사용하고 있습니다. 원한다면 샘플 소스를 제공 할 수 있습니다. –