---
name: "std::__debug::unordered_multimap"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::__debug::unordered_multimap/3cxx"
---

# std::\_\_debug::unordered\_multimap(3cxx)

Class std::unordered\_multimap with safety/checking/debug instrumentation.

## NAME

std::\_\_debug::unordered\_multimap\< \_Key, \_Tp, \_Hash, \_Pred, \_Alloc \> - Class std::unordered\_multimap with safety/checking/debug instrumentation.

## SYNOPSIS

`#include <unordered_map>`

Inherits **\_\_gnu\_debug::\_Safe\_container\< \_SafeContainer, \_Alloc, \_SafeBase, \_IsCxx11AllocatorAware \>**, and unordered\_multimap\< \_Key, \_Tp, std::hash\< \_Key \>, std::equal\_to\< \_Key \>, std::allocator\< std::pair\< const \_Key, \_Tp \> \> \>.

### Public Types

**typedef** \_Base::allocator\_type **allocator\_type**\
 **typedef** **\_\_gnu\_debug::\_Safe\_iterator**\< **\_Base\_const\_iterator**, **unordered\_multimap** \> **const\_iterator**\
 **typedef** **\_\_gnu\_debug::\_Safe\_local\_iterator**\< **\_Base\_const\_local\_iterator**, **unordered\_multimap** \> **const\_local\_iterator**\
 **typedef** \_Base::const\_pointer **const\_pointer**\
 **typedef** \_Base::const\_reference **const\_reference**\
 **typedef** \_Base::difference\_type **difference\_type**\
 **typedef** \_Base::hasher **hasher**\
 **typedef** **\_\_gnu\_debug::\_Safe\_iterator**\< **\_Base\_iterator**, **unordered\_multimap** \> **iterator**\
 **typedef** \_Base::key\_equal **key\_equal**\
 **typedef** \_Base::key\_type **key\_type**\
 **typedef** **\_\_gnu\_debug::\_Safe\_local\_iterator**\< **\_Base\_local\_iterator**, **unordered\_multimap** \> **local\_iterator**\
 **typedef** \_Base::mapped\_type **mapped\_type**\
 **using** **node\_type** = **typename** \_Base::node\_type\
 **typedef** \_Base::pointer **pointer**\
 **typedef** \_Base::reference **reference**\
 **typedef** \_Base::size\_type **size\_type**\
 **typedef** \_Base::value\_type **value\_type**\

### Public Member Functions

**unordered\_multimap** (\_Base\_ref \_\_x)\
 template\<**typename** **\_InputIterator** \> **unordered\_multimap** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last, size\_type \_\_n, const allocator\_type &\_\_a)\
 template\<**typename** **\_InputIterator** \> **unordered\_multimap** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last, size\_type \_\_n, const hasher &**\_\_hf**, const allocator\_type &\_\_a)\
 template\<**typename** **\_InputIterator** \> **unordered\_multimap** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last, size\_type \_\_n=0, const hasher &**\_\_hf**=hasher(), const key\_equal &**\_\_eql**=key\_equal(), const allocator\_type &\_\_a=allocator\_type())\
 **unordered\_multimap** (const allocator\_type &\_\_a)\
 **unordered\_multimap** (const **unordered\_multimap** &)=**default**\
 **unordered\_multimap** (const **unordered\_multimap** &**\_\_umap**, const allocator\_type &\_\_a)\
 **unordered\_multimap** (**initializer\_list**\< value\_type \> **\_\_l**, size\_type \_\_n, const allocator\_type &\_\_a)\
 **unordered\_multimap** (**initializer\_list**\< value\_type \> **\_\_l**, size\_type \_\_n, const hasher &**\_\_hf**, const allocator\_type &\_\_a)\
 **unordered\_multimap** (**initializer\_list**\< value\_type \> **\_\_l**, size\_type \_\_n=0, const hasher &**\_\_hf**=hasher(), const key\_equal &**\_\_eql**=key\_equal(), const allocator\_type &\_\_a=allocator\_type())\
 **unordered\_multimap** (size\_type \_\_n, const allocator\_type &\_\_a)\
 **unordered\_multimap** (size\_type \_\_n, const hasher &**\_\_hf**, const allocator\_type &\_\_a)\
 **unordered\_multimap** (size\_type \_\_n, const hasher &**\_\_hf**=hasher(), const key\_equal &**\_\_eql**=key\_equal(), const allocator\_type &\_\_a=allocator\_type())\
 **unordered\_multimap** (**unordered\_multimap** &&)=**default**\
 **unordered\_multimap** (**unordered\_multimap** &&**\_\_umap**, const allocator\_type &\_\_a) noexcept(noexcept(**\_Base**(**std::move**(**\_\_umap**), \_\_a)))\
 const **\_Base** & **\_M\_base** () const noexcept\
 **\_Base** & **\_M\_base** () noexcept\
 **const\_iterator** **begin** () const noexcept\
 **iterator** **begin** () noexcept\
 **local\_iterator** **begin** (size\_type \_\_b)\
 **const\_local\_iterator** **begin** (size\_type \_\_b) const\
 size\_type **bucket\_size** (size\_type \_\_b) const\
 **const\_iterator** **cbegin** () const noexcept\
 **const\_local\_iterator** **cbegin** (size\_type \_\_b) const\
 **const\_iterator** **cend** () const noexcept\
 **const\_local\_iterator** **cend** (size\_type \_\_b) const\
 **void** **clear** () noexcept\
 template\<typename... \_Args\> **iterator** **emplace** (**\_Args** &&... **\_\_args**)\
 template\<typename... \_Args\> **iterator** **emplace\_hint** (**const\_iterator** **\_\_hint**, **\_Args** &&... **\_\_args**)\
 **const\_iterator** **end** () const noexcept\
 **iterator** **end** () noexcept\
 **local\_iterator** **end** (size\_type \_\_b)\
 **const\_local\_iterator** **end** (size\_type \_\_b) const\
 template\<**typename** **\_Kt** , **typename**  = std::\_\_has\_is\_transparent\_t\<\_Hash, \_Kt\>, **typename**  = std::\_\_has\_is\_transparent\_t\<\_Pred, \_Kt\>\> **std::pair**\< **iterator**, **iterator** \> **equal\_range** (const **\_Kt** &**\_\_k**)\
 template\<**typename** **\_Kt** , **typename**  = std::\_\_has\_is\_transparent\_t\<\_Hash, \_Kt\>, **typename**  = std::\_\_has\_is\_transparent\_t\<\_Pred, \_Kt\>\> **std::pair**\< **const\_iterator**, **const\_iterator** \> **equal\_range** (const **\_Kt** &**\_\_k**) const\
 **std::pair**\< **iterator**, **iterator** \> **equal\_range** (const key\_type &**\_\_key**)\
 **std::pair**\< **const\_iterator**, **const\_iterator** \> **equal\_range** (const key\_type &**\_\_key**) const\
 **\_Base\_iterator** **erase** (**\_Base\_const\_iterator** **\_\_it**)\
 size\_type **erase** (const key\_type &**\_\_key**)\
 **iterator** **erase** (**const\_iterator** \_\_first, **const\_iterator** \_\_last)\
 **iterator** **erase** (**const\_iterator** **\_\_it**)\
 **iterator** **erase** (**iterator** **\_\_it**)\
 node\_type **extract** (const key\_type &**\_\_key**)\
 node\_type **extract** (**const\_iterator** **\_\_position**)\
 template\<**typename** **\_Kt** , **typename**  = std::\_\_has\_is\_transparent\_t\<\_Hash, \_Kt\>, **typename**  = std::\_\_has\_is\_transparent\_t\<\_Pred, \_Kt\>\> **iterator** **find** (const **\_Kt** &**\_\_k**)\
 template\<**typename** **\_Kt** , **typename**  = std::\_\_has\_is\_transparent\_t\<\_Hash, \_Kt\>, **typename**  = std::\_\_has\_is\_transparent\_t\<\_Pred, \_Kt\>\> **const\_iterator** **find** (const **\_Kt** &**\_\_k**) const\
 **iterator** **find** (const key\_type &**\_\_key**)\
 **const\_iterator** **find** (const key\_type &**\_\_key**) const\
 template\<**typename** **\_InputIterator** \> **void** **insert** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last)\
 template\<**typename** **\_Pair** , **typename**  = typename std::enable\_if\<std::is\_constructible\<value\_type,						    \_Pair&&\>::value\>::type\> **iterator** **insert** (**\_Pair** &&**\_\_obj**)\
 **iterator** **insert** (const value\_type &**\_\_obj**)\
 template\<**typename** **\_Pair** , **typename**  = typename std::enable\_if\<std::is\_constructible\<value\_type,						    \_Pair&&\>::value\>::type\> **iterator** **insert** (**const\_iterator** **\_\_hint**, **\_Pair** &&**\_\_obj**)\
 **iterator** **insert** (**const\_iterator** **\_\_hint**, const value\_type &**\_\_obj**)\
 **iterator** **insert** (**const\_iterator** **\_\_hint**, node\_type &&**\_\_nh**)\
 **iterator** **insert** (**const\_iterator** **\_\_hint**, value\_type &&\_\_x)\
 **iterator** **insert** (node\_type &&**\_\_nh**)\
 **void** **insert** (**std::initializer\_list**\< value\_type \> **\_\_l**)\
 **iterator** **insert** (value\_type &&\_\_x)\
 float **max\_load\_factor** () const noexcept\
 **void** **max\_load\_factor** (float \_\_f)\
 template\<**typename** **\_H2** , **typename** **\_P2** \> **void** **merge** (**unordered\_map**\< **\_Key**, \_Tp, **\_H2**, **\_P2**, \_Alloc \> &&**\_\_source**)\
 template\<**typename** **\_H2** , **typename** **\_P2** \> **void** **merge** (**unordered\_map**\< **\_Key**, \_Tp, **\_H2**, **\_P2**, \_Alloc \> &**\_\_source**)\
 template\<**typename** **\_H2** , **typename** **\_P2** \> **void** **merge** (**unordered\_multimap**\< **\_Key**, \_Tp, **\_H2**, **\_P2**, \_Alloc \> &&**\_\_source**)\
 template\<**typename** **\_H2** , **typename** **\_P2** \> **void** **merge** (**unordered\_multimap**\< **\_Key**, \_Tp, **\_H2**, **\_P2**, \_Alloc \> &**\_\_source**)\
 **unordered\_multimap** & **operator=** (const **unordered\_multimap** &)=**default**\
 **unordered\_multimap** & **operator=** (**initializer\_list**\< value\_type \> **\_\_l**)\
 **unordered\_multimap** & **operator=** (**unordered\_multimap** &&)=**default**\
 **void** **swap** (**unordered\_multimap** &\_\_x) noexcept(noexcept(**declval**\< **\_Base** & \>().swap(\_\_x)))\

### Protected Member Functions

**void** **\_M\_swap** (\_Safe\_container &\_\_x) noexcept\

### Friends

template\<**typename** **\_ItT** , **typename** **\_SeqT** , **typename** **\_CatT** \> **class** **::\_\_gnu\_debug::\_Safe\_iterator**\
 template\<**typename** **\_ItT** , **typename** **\_SeqT** \> **class** **::\_\_gnu\_debug::\_Safe\_local\_iterator**\

## Detailed Description

### template\<typename \_Key, typename \_Tp, typename \_Hash = std::hash\<\_Key\>, typename \_Pred = std::equal\_to\<\_Key\>, typename \_Alloc = std::allocator\<std::pair\<const \_Key, \_Tp\> \>\>

class std::\_\_debug::unordered\_multimap\< \_Key, \_Tp, \_Hash, \_Pred, \_Alloc \>"Class std::unordered\_multimap with safety/checking/debug instrumentation.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
