operator==,!= (std::unordered_map)
|
template
<
class
Key,
class
T,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
==
(
const
std::
unordered_map
<
Key, T, Hash, KeyEqual, Alloc
>
&
lhs,
|
(1) | |
|
template
<
class
Key,
class
T,
class
Hash,
class
KeyEqual,
class
Alloc
>
bool
operator
!
=
(
const
std::
unordered_map
<
Key, T, Hash, KeyEqual, Alloc
>
&
lhs,
|
(2) | (hasta C++20) |
Compara el contenido de dos contenedores no ordenados.
Los contenidos de dos contenedores no ordenados lhs y rhs son iguales si se cumplen las siguientes condiciones:
- lhs. size ( ) == rhs. size ( ) .
-
cada grupo de elementos equivalentes
[lhs_eq1,lhs_eq2)obtenido de lhs. equal_range ( lhs_eq1 ) tiene un grupo correspondiente de elementos equivalentes en el otro contenedor[rhs_eq1,rhs_eq2)obtenido de rhs. equal_range ( rhs_eq1 ) , que tiene las siguientes propiedades:
-
- std:: distance ( lhs_eq1, lhs_eq2 ) == std:: distance ( rhs_eq1, rhs_eq2 ) .
- std:: is_permutation ( lhs_eq1, lhs_eq2, rhs_eq1 ) == true .
El comportamiento es indefinido si
Key
o
T
no son
EqualityComparable
.
El comportamiento también es indefinido si
hash_function()
y
key_eq()
no
(until C++20)
key_eq()
no
(since C++20)
tienen el mismo comportamiento en
lhs
y
rhs
o si
operator
==
para
Key
no es un refinamiento de la partición en grupos de claves equivalentes introducida por
key_eq()
(es decir, si dos elementos que comparan igual usando
operator
==
caen en particiones diferentes).
|
El operador
|
(since C++20) |
Parámetros
| lhs, rhs | - | contenedores desordenados a comparar |
Valor de retorno
Complejidad
Proporcional a
N
llamadas a
operator
==
en
value_type
, llamadas al predicado devuelto por
key_eq
, y llamadas al hasher devuelto por
hash_function
, en el caso promedio, proporcional a
N
2
en el peor caso donde
N
es el tamaño del contenedor.