operators (std::unordered_map)
template< class Key, class T, class Hash, class KeyEqual, class Allocator > bool operator==( const unordered_map<Key,T,Hash,KeyEqual,Allocator>& lhs, const unordered_map<Key,T,Hash,KeyEqual,Allocator>& rhs ); | (1) | |
|---|---|---|
template< class Key, class T, class Hash, class KeyEqual, class Allocator > bool operator!=( const unordered_map<Key,T,Hash,KeyEqual,Allocator>& lhs, const unordered_map<Key,T,Hash,KeyEqual,Allocator>& rhs ); | (2) | |
Compares the contents of two unordered containers.
The contents of two unordered containers lhs and rhs are equal if the following conditions hold:
lhs.size() == rhs.size()- each group of equivalent elements
[lhs_eq1, lhs_eq2)obtained fromlhs.equal_range(lhs_eq1)has a corresponding group of equivalent elements in the other container[rhs_eq1, rhs_eq2)obtained fromrhs.equal_range(rhs_eq1), that has the following properties:std::distance(lhs_eq1, lhs_eq2)==std::distance(rhs_eq1, rhs_eq2).std::is_permutation(lhs_eq1, lhs_eq2, rhs_eq1)==true.
The behavior is undefined if Key or T are not EqualityComparable.
The behavior is also undefined if Hash and KeyEqual do not have the same behavior on lhs and rhs or if operator== for value_type is not a refinement of the partition into equivalent-key groups introduced by KeyEqual (that is, if two elements that compare equal using operator== fall into different partitions).
Parameters
lhs, rhs | - | unordered containers to compare |
|---|
Return value
1) true if the contents of the containers are equal, false otherwise
2) true if the contents of the containers are not equal, false otherwise
Complexity
Proportional to N calls to operator== on value_type, calls to the predicate returned by key_eq, and calls to the hasher returned by hash_function, in the average case, proportional to N2 in the worst case where N is the size of the container.
© cppreference.comLicensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

