[unord.map.syn]

# 23 Containers library [[containers]](./#containers)

## 23.5 Unordered associative containers [[unord]](unord#map.syn)

### 23.5.2 Header <unordered_map> synopsis [unord.map.syn]

[ð](#header:%3cunordered_map%3e)

#include <compare> // see [[compare.syn]](compare.syn "17.12.1 Header <compare> synopsis")#include <initializer_list> // see [[initializer.list.syn]](initializer.list.syn "17.11.2 Header <initializer_­list> synopsis")namespace std {// [[unord.map]](unord.map "23.5.3 Class template unordered_­map"), class template unordered_maptemplate<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Alloc = allocator<pair<const Key, T>>>class unordered_map; // [[unord.multimap]](unord.multimap "23.5.4 Class template unordered_­multimap"), class template unordered_multimaptemplate<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Alloc = allocator<pair<const Key, T>>>class unordered_multimap; template<class Key, class T, class Hash, class Pred, class Alloc>constexpr bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a, const unordered_map<Key, T, Hash, Pred, Alloc>& b); template<class Key, class T, class Hash, class Pred, class Alloc>constexpr bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a, const unordered_multimap<Key, T, Hash, Pred, Alloc>& b); template<class Key, class T, class Hash, class Pred, class Alloc>constexpr void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
 unordered_map<Key, T, Hash, Pred, Alloc>& y)noexcept(noexcept(x.swap(y))); template<class Key, class T, class Hash, class Pred, class Alloc>constexpr void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
 unordered_multimap<Key, T, Hash, Pred, Alloc>& y)noexcept(noexcept(x.swap(y))); // [[unord.map.erasure]](unord.map.erasure "23.5.3.5 Erasure"), erasure for unordered_maptemplate<class K, class T, class H, class P, class A, class Predicate>constexpr typename unordered_map<K, T, H, P, A>::size_type
 erase_if(unordered_map<K, T, H, P, A>& c, Predicate pred); // [[unord.multimap.erasure]](unord.multimap.erasure "23.5.4.4 Erasure"), erasure for unordered_multimaptemplate<class K, class T, class H, class P, class A, class Predicate>constexpr typename unordered_multimap<K, T, H, P, A>::size_type
 erase_if(unordered_multimap<K, T, H, P, A>& c, Predicate pred); namespace pmr {template<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>>using unordered_map = std::unordered_map<Key, T, Hash, Pred,
 polymorphic_allocator<pair<const Key, T>>>; template<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>>using unordered_multimap = std::unordered_multimap<Key, T, Hash, Pred,
 polymorphic_allocator<pair<const Key, T>>>; }}
