Comparing unordered
containers
unordered container a 와 b 가 같은지
비교할 때의 규칙(기존)
1. a.size() == b.size()
2. 모든 키에 대해 a.equal_range() 를 수행
3. 모든 키에 대해 b.equal_range() 를 수행
4. std::is_permutation() 이 true
이 과정에서 operator== 와 operator!= 를 수행하기 위해 Hash 와 Pred를 사용한다
unordered container a 와 b 가 같은지
비교할 때의 규칙(변경)
앞의 비교 과정에서 operator== 와 operator!= 를 수행하기 위해 Pred 만 사용한다
Hash 에서 정의 하는 equal 이랑 Pred 에서 정의하는 equal 이 다를 수 있기 때문
ex. random
정말 잘 되나?
GCC(좌), MSVC(우)

C++20 Comparing unordered containers

  • 1.
  • 2.
    unordered container a와 b 가 같은지 비교할 때의 규칙(기존) 1. a.size() == b.size() 2. 모든 키에 대해 a.equal_range() 를 수행 3. 모든 키에 대해 b.equal_range() 를 수행 4. std::is_permutation() 이 true 이 과정에서 operator== 와 operator!= 를 수행하기 위해 Hash 와 Pred를 사용한다
  • 3.
    unordered container a와 b 가 같은지 비교할 때의 규칙(변경) 앞의 비교 과정에서 operator== 와 operator!= 를 수행하기 위해 Pred 만 사용한다 Hash 에서 정의 하는 equal 이랑 Pred 에서 정의하는 equal 이 다를 수 있기 때문 ex. random
  • 5.
  • 6.