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,
const std::unordered_multimap<Key, T, Hash, KeyEqual, Alloc>& rhs );
| (1) | |
template< class Key, class T, class Hash, class KeyEqual, class Alloc >
bool operator!=( const std::unordered_multimap<Key, T, Hash, KeyEqual, Alloc>& lhs,
const std::unordered_multimap<Key, T, 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), обладающую следующими свойствами: -
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 или если operator== для Key не является уточнением разбиения на группы эквивалентных ключей, введенного key_eq() (то есть, если два элемента, сравниваемые как равные с помощью operator==, попадают в разные группы).
| Оператор | (с C++20) |
Параметры
| lhs, rhs | - | сравниваемые неупорядоченные контейнеры |
Возвращаемое значение
true если содержимое контейнеров совпадает, false в противном случае.true если содержимое контейнеров не совпадает, false в противном случае.Сложность
Пропорциональна ΣSi2 вызовам operator== для value_type, вызовам предиката, возвращаемого key_eq, и вызовам хеш-функции, возвращаемой hash_function в среднем случае, где S — размер i-й группы эквивалентных ключей. В худшем случае пропорциональна N2, где N — размер контейнера. Средний случай становится пропорциональным N, если элементы в каждой группе эквивалентных ключей упорядочены одинаково (это происходит, когда контейнеры являются копиями друг друга).
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/unordered_multimap/operator_cmp