operator==,!=(std::unordered_multimap)
std::unordered_multimap
成员函数 | ||||
迭代器 | ||||
容量 | ||||
修改器 | ||||
(C++17)
|
||||
(C++17)
|
||||
查找 | ||||
(C++20)
|
||||
桶接口 | ||||
哈希策略 | ||||
观察器 | ||||
非成员函数 | ||||
operator==operator!=
(C++20
前)
|
||||
(C++20)
|
||||
推导指引(C++17) |
template<
class
Key, class
T, class
Hash, class
KeyEqual, class
Allocator >
bool
operator==(
const
std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>&
lhs, |
(1) | |
template<
class
Key, class
T, class
Hash, class
KeyEqual, class
Allocator >
bool
operator!=(
const
std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>&
lhs, |
(2) | (C++20 前) |
比较二个无序容器的内容。
若下列条件成立则二个无序容器 lhs
与 rhs
相等:
- lhs.size() == rhs.size()
- 从 lhs.equal_range(lhs_eq1)
获得的每组等价元素
[lhs_eq1, lhs_eq2)
拥有在另一容器中从 rhs.equal_range(rhs_eq1) 获得的对应等价元素组[rhs_eq1, rhs_eq2)
,且它们拥有下列属性:
-
- 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()
所引入的等价关键组的细分(即若用 operator==
比较相等的二个元素落入不同划分),则行为未定义。
|
(C++20 起) |
参数
lhs, rhs | - | 要比较的无序容器 |
返回值
复杂度
调用 value_type
上的 operator== 、调用 key_eq
所返回的谓词,及调用 hash_function
所返回的哈希器的次数,平均情况下与 ΣSi2 成正比,其中 S 是第
i 个等价关键组的大小。最坏情况下与 N2 成正比,其中 N
是容器大小。若每个等价关键组中元素以相同顺序排列(在容器互为副本时发生),则平均情况变为与 N 成正比。