operator==,!= (std::unordered_set)
|
template
<
class
Key,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
==
(
const
std::
unordered_set
<
Key, Hash, KeyEqual, Alloc
>
&
lhs,
|
(1) | |
|
template
<
class
Key,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
!
=
(
const
std::
unordered_set
<
Key, 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
가
EqualityComparable
요구 사항을 만족하지 않을 경우 동작은 정의되지 않습니다.
다음의 경우 또한 동작이 정의되지 않습니다:
hash_function()
와
key_eq()
가
(C++20 이전)
key_eq()
가
(C++20 이후)
lhs
와
rhs
에서 동일한 동작을 하지 않거나,
Key
에 대한
operator
==
가
key_eq()
에 의해 도입된 동등 키 그룹 분할을 정제(refinement)하지 않는 경우 (즉,
operator
==
를 사용하여 비교 시 동일한 두 요소가 서로 다른 분할에 속하는 경우).
|
|
(C++20부터) |
매개변수
| lhs, rhs | - | 비교할 비정렬 컨테이너 |
반환값
복잡도
N
에 비례하는 횟수만큼
value_type
에 대한
operator
==
호출,
key_eq
가 반환하는 predicate 호출, 그리고
hash_function
가 반환하는 hasher 호출이 발생합니다. 평균적인 경우에는
N
에 비례하며, 최악의 경우에는 컨테이너 크기인
N
의 제곱에 비례합니다.