Namespaces
Variants

C++ named requirements: Hash (since C++11)

From cppreference.net
C++ named requirements

Hash 는 출력이 입력에만 의존하며, 서로 다른 입력값이 주어졌을 때 동일한 출력을 생성할 확률이 매우 낮은 함수 객체입니다.

요구사항

타입 T 가 다음 조건을 만족하면 Hash 를 만족합니다

주어진

  • h , T 또는 const T 타입의 값으로, 인자 타입이 Key 인,
  • k , Key 또는 const Key 으로 변환 가능한 타입의 값,
  • u , Key 타입의 lvalue 표현식.

다음 표현식들은 유효해야 하며 지정된 효과를 가져야 합니다.

표현식 반환 타입 요구 사항
h ( k ) std::size_t 반환된 값은 프로그램 실행 기간 동안 k 의 값에만 의존합니다.

동일한 프로그램 실행 내에서 수행되는 모든 h ( k ) 평가는 동일한 k 값에 대해 동일한 결과를 생성합니다.

a ! = b 인 경우 h ( a ) == h ( b ) 일 확률은 1.0 / std:: numeric_limits < std:: size_t > :: max ( ) 에 접근해야 합니다.

h ( u ) std::size_t u 는 수정되지 않습니다.

표준 라이브러리

(C++11)
해시 함수 객체
(클래스 템플릿)

결함 보고서

다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2291 C++11 모든 경우에 동일한 인수에 대해 동일한 결과가 요구됨 단일 실행 내에서만 요구됨