operator==,!= (std::unordered_multimap)
|
template
<
class
Key,
class
T,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
==
(
const
std::
unordered_multimap
<
Key, T, Hash, KeyEqual, Alloc
>
&
lhs,
|
(1) | |
|
template
<
class
Key,
class
T,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
!
=
(
const
std::
unordered_multimap
<
Key, T, Hash, KeyEqual, Alloc
>
&
lhs,
|
(2) | (C++20 이전) |
두 개의 비정렬 컨테이너 내용을 비교합니다.
두 개의 비정렬 컨테이너 lhs 와 rhs 의 내용은 다음 조건들이 충족될 때 동일합니다:
- lhs. size ( ) == rhs. size ( ) .
-
각 동등 요소 그룹
[lhs_eq1,lhs_eq2)이 lhs. equal_range ( lhs_eq1 ) 에서 얻어졌을 때, 다른 컨테이너에도 대응하는 동등 요소 그룹[rhs_eq1,rhs_eq2)이 rhs. equal_range ( rhs_eq1 ) 에서 얻어지며, 다음 속성들을 가집니다:
-
- std:: distance ( lhs_eq1, lhs_eq2 ) == std:: distance ( rhs_eq1, rhs_eq2 ) .
- std:: is_permutation ( lhs_eq1, lhs_eq2, rhs_eq1 ) == true .
Key
또는
T
가
EqualityComparable
요구사항을 충족하지 않을 경우 동작은 정의되지 않습니다.
다음의 경우 또한 동작이 정의되지 않습니다:
hash_function()
와
key_eq()
가
(C++20 이전)
key_eq()
가
(C++20 이후)
lhs
와
rhs
에서 동일한 동작을 하지 않는 경우, 또는
Key
에 대한
operator
==
가
key_eq()
에 의해 도입된 동등 키 그룹 분할을 정제(refinement)하지 않는 경우 (즉,
operator
==
를 사용하여 비교 시 동일한 두 요소가 서로 다른 분할에 속하는 경우).
|
|
(C++20 이후) |
매개변수
| lhs, rhs | - | 비교할 비정렬 컨테이너 |
반환값
복잡도
ΣS
i
2
에 비례하는 횟수만큼
operator
==
를
value_type
에 대해 호출하며,
key_eq
가 반환하는 predicate와
hash_function
가 반환하는 hasher를 호출합니다. 여기서
S
는
i
번째 동등 키 그룹의 크기입니다. 최악의 경우
N
2
에 비례하며, 여기서
N
은 컨테이너의 크기입니다. 각 동등 키 그룹 내 요소들이 동일한 순서로 배열된 경우(컨테이너들이 서로의 복사본일 때 발생) 평균 경우가
N
에 비례하게 됩니다.