2020 이전/C++

STL std::map/std::unordered_map의 세상

이상해C++ 2019. 10. 24. 15:14

 

사용자 정의 클래스로 unordered_map 사용하기

해시함수(함수객체/해시템플릿구체화)와, equal(함수객체/연산자오버로딩)함수가 필요하다. 

1. 함수객체를 사용
2. equal연산자 오버로딩과 템플릿 특수화를 사용

사용자 정의 클래스로 map 사용하기

비교연산자 <를 오버로딩하거나 함수객체로 넘겨줘야 사용가능하다

비교연산자 오버로딩이 되어있고 함수객체를 넘겨줬다면 함수객체를 우선으로 실행한다.

연산자를 오버로딩하고 함수 객체의 부등호 방향만 바뀌었을 때

 

참고: https://en.cppreference.com/w/cpp/utility/hash