[STL] 9. hash

[STL] 9. hash

Tags
STL

Hash

  • std::hash는 STL에서 제공하는 해시 함수 객체이다.
  • 주어진 입력을 일정한 크기의 해시 값으로 변환한다
  • 빠른 데이터 검색 및 저장을 위한 자료구조에서 사용된다.
  • 해시 테이블을 사용하는 unordered_map 같은 컨테이너에서 내부적으로 사용해 사용자 정의 자료형의 해시 값을 직접 생성하는 경우가 아니면 사용되는 경우가 드물다.

사용법

자세한 내용은 아래 사이트에서 볼 수 있다.

생성

#inclue <functional> // 기본 자료형 string str; hash<string> str_hash; // 생성 cout << str_hash(str); // 사용 //사용자 정의형 struct MyStruct{ int a; int b; } template <> struct hash<MyStruct>{ size_t operator()(const MyStruct& s) const { return hash<int>()(s.a) ^ hash<int>()(s.b << 1); // 자유롭게 구현 } }