---
name: "std::__debug::multimap"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::__debug::multimap"
---

# std::\_\_debug::multimap(3)

Class std::multimap with safety/checking/debug instrumentation.

## NAME

std::\_\_debug::multimap\< \_Key, \_Tp, \_Compare, \_Allocator \> - Class std::multimap with safety/checking/debug instrumentation.

## SYNOPSIS

\#include \<map\>

Inherits **\_\_gnu\_debug::\_Safe\_container\< \_SafeContainer, \_Alloc, \_SafeBase, \_IsCxx11AllocatorAware \>**.

### Public Types

typedef \_Allocator **allocator\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_const\_iterator, multimap \> **const\_iterator**\
 typedef \_Base::const\_pointer **const\_pointer**\
 typedef \_Base::const\_reference **const\_reference**\
 typedef **std::reverse\_iterator**\< const\_iterator \> **const\_reverse\_iterator**\
 typedef \_Base::difference\_type **difference\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_iterator, multimap \> **iterator**\
 typedef \_Compare **key\_compare**\
 typedef \_Key **key\_type**\
 typedef \_Tp **mapped\_type**\
 typedef \_Base::pointer **pointer**\
 typedef \_Base::reference **reference**\
 typedef **std::reverse\_iterator**\< iterator \> **reverse\_iterator**\
 typedef \_Base::size\_type **size\_type**\
 typedef **std::pair**\< const \_Key, \_Tp \> **value\_type**\

### Public Member Functions

**multimap** (\_Base\_ref \_\_x)\
 template\<typename \_InputIterator\> **multimap** (\_InputIterator \_\_first, \_InputIterator \_\_last, const \_Compare &\_\_comp=\_Compare(), const \_Allocator &\_\_a=\_Allocator())\
 template\<typename \_InputIterator\> **multimap** (\_InputIterator \_\_first, \_InputIterator \_\_last, const allocator\_type &\_\_a)\
 **multimap** (const \_Compare &\_\_comp, const \_Allocator &\_\_a=\_Allocator())\
 **multimap** (const allocator\_type &\_\_a)\
 **multimap** (const multimap &)=default\
 **multimap** (const multimap &\_\_m, const \_\_type\_identity\_t\< allocator\_type \> &\_\_a)\
 **multimap** (**initializer\_list**\< value\_type \> \_\_l, const \_Compare &\_\_c=\_Compare(), const allocator\_type &\_\_a=allocator\_type())\
 **multimap** (**initializer\_list**\< value\_type \> \_\_l, const allocator\_type &\_\_a)\
 **multimap** (multimap &&)=default\
 **multimap** (multimap &&\_\_m, const \_\_type\_identity\_t\< allocator\_type \> &\_\_a) noexcept(noexcept(\_Base(**std::move**(\_\_m), \_\_a)))\
 const \_Base & **\_M\_base** () const noexcept\
 \_Base & **\_M\_base** () noexcept\
 const\_iterator **begin** () const noexcept\
 iterator **begin** () noexcept\
 const\_iterator **cbegin** () const noexcept\
 const\_iterator **cend** () const noexcept\
 void **clear** () noexcept\
 const\_reverse\_iterator **crbegin** () const noexcept\
 const\_reverse\_iterator **crend** () const noexcept\
 template\<typename... \_Args\> iterator **emplace** (\_Args &&... \_\_args)\
 template\<typename... \_Args\> iterator **emplace\_hint** (const\_iterator \_\_pos, \_Args &&... \_\_args)\
 const\_iterator **end** () const noexcept\
 iterator **end** () noexcept\
 **std::pair**\< iterator, iterator \> **equal\_range** (const key\_type &\_\_x)\
 **std::pair**\< const\_iterator, const\_iterator \> **equal\_range** (const key\_type &\_\_x) const\
 \_Base\_iterator **erase** (\_Base\_const\_iterator \_\_position)\
 template\<\_\_heterogeneous\_tree\_key\< multimap \> \_Kt\> size\_type **erase** (\_Kt &&\_\_x)\
 size\_type **erase** (const key\_type &\_\_x)\
 iterator **erase** (const\_iterator \_\_first, const\_iterator \_\_last)\
 iterator **erase** (const\_iterator \_\_position)\
 iterator **erase** (iterator \_\_position)\
 iterator **find** (const key\_type &\_\_x)\
 const\_iterator **find** (const key\_type &\_\_x) 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 &&\_\_x)\
 iterator **insert** (const value\_type &\_\_x)\
 template\<typename \_Pair, typename = typename std::enable\_if\<std::is\_constructible\<value\_type,						    \_Pair&&\>::value\>::type\> iterator **insert** (const\_iterator \_\_position, \_Pair &&\_\_x)\
 iterator **insert** (const\_iterator \_\_position, const value\_type &\_\_x)\
 iterator **insert** (const\_iterator \_\_position, value\_type &&\_\_x)\
 void **insert** (**std::initializer\_list**\< value\_type \> \_\_list)\
 iterator **insert** (value\_type &&\_\_x)\
 iterator **lower\_bound** (const key\_type &\_\_x)\
 const\_iterator **lower\_bound** (const key\_type &\_\_x) const\
 multimap & **operator=** (const multimap &)=default\
 multimap & **operator=** (**initializer\_list**\< value\_type \> \_\_l)\
 multimap & **operator=** (multimap &&)=default\
 const\_reverse\_iterator **rbegin** () const noexcept\
 reverse\_iterator **rbegin** () noexcept\
 const\_reverse\_iterator **rend** () const noexcept\
 reverse\_iterator **rend** () noexcept\
 void **swap** (multimap &\_\_x) noexcept(/\***conditional** \*/)\
 iterator **upper\_bound** (const key\_type &\_\_x)\
 const\_iterator **upper\_bound** (const key\_type &\_\_x) const\

### Protected Member Functions

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

### Friends

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

## Detailed Description

### template\<typename \_Key, typename \_Tp, typename \_Compare = std::less\<\_Key\>, typename \_Allocator = std::allocator\<std::pair\<const \_Key, \_Tp\> \>\>

class std::\_\_debug::multimap\< \_Key, \_Tp, \_Compare, \_Allocator \>"Class std::multimap with safety/checking/debug instrumentation.

## Author

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