Namespaces
Variants

operator==,!= (std::unordered_multiset)

From cppreference.net

template < class Key, class Hash, class KeyEqual, class Alloc >

bool operator == ( const std:: unordered_multiset < Key, Hash, KeyEqual, Alloc > & lhs,

const std:: unordered_multiset < Key, Hash, KeyEqual, Alloc > & rhs ) ;
(1)
template < class Key, class Hash, class KeyEqual, class Alloc >

bool operator ! = ( const std:: unordered_multiset < Key, Hash, KeyEqual, Alloc > & lhs,

const std:: unordered_multiset < Key, Hash, KeyEqual, Alloc > & rhs ) ;
(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 ) , которая обладает следующими свойствами:

Поведение не определено, если Key не является EqualityComparable .

Поведение также не определено, если hash_function() и key_eq() имеют (до C++20) key_eq() имеет (начиная с C++20) разное поведение для lhs и rhs или если operator == для Key не является уточнением разделения на группы эквивалентных ключей, введенного key_eq() (то есть, если два элемента, которые сравниваются как равные с помощью operator == попадают в разные разделы).

Оператор != синтезируется из operator== .

(since C++20)

Параметры

lhs, rhs - неупорядоченные контейнеры для сравнения

Возвращаемое значение

1) true если содержимое контейнеров равно, false в противном случае.
2) true если содержимое контейнеров не равно, false в противном случае.

Сложность

Пропорционально ΣS i 2 вызовам operator == для value_type , вызовам предиката, возвращаемого key_eq , и вызовам хеш-функции, возвращаемой hash_function в среднем случае, где S — размер i -й группы эквивалентных ключей. Пропорционально N 2 в худшем случае, где N — размер контейнера. Средний случай становится пропорциональным N , если элементы внутри каждой группы эквивалентных ключей расположены в одинаковом порядке (происходит, когда контейнеры являются копиями друг друга).