---
name: "std::__debug::multiset"
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::multiset/3cxx"
---

# std::\_\_debug::multiset(3cxx)

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

## NAME

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

## SYNOPSIS

`#include <set>`

Inherits **\_\_gnu\_debug::\_Safe\_container\< \_SafeContainer, \_Alloc, \_SafeBase, \_IsCxx11AllocatorAware \>**, and multiset\< \_Key, std::less\< \_Key \>, std::allocator\< \_Key \> \>.

### Public Types

**typedef** **\_Allocator** **allocator\_type**\
 **typedef** **\_\_gnu\_debug::\_Safe\_iterator**\< **\_Base\_const\_iterator**, **multiset** \> **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**, **multiset** \> **iterator**\
 **typedef** \_Compare **key\_compare**\
 **typedef** **\_Key** **key\_type**\
 **using** **node\_type** = **typename** \_Base::node\_type\
 **typedef** \_Base::pointer **pointer**\
 **typedef** \_Base::reference **reference**\
 **typedef** **std::reverse\_iterator**\< **iterator** \> **reverse\_iterator**\
 **typedef** \_Base::size\_type **size\_type**\
 **typedef** \_Compare **value\_compare**\
 **typedef** **\_Key** **value\_type**\

### Public Member Functions

**multiset** (\_Base\_ref \_\_x)\
 template\<**typename** **\_InputIterator** \> **multiset** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last, const \_Compare &\_\_comp=\_Compare(), const **\_Allocator** &\_\_a=**\_Allocator**())\
 template\<**typename** **\_InputIterator** \> **multiset** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last, const **allocator\_type** &\_\_a)\
 **multiset** (const \_Compare &\_\_comp, const **\_Allocator** &\_\_a=**\_Allocator**())\
 **multiset** (const **allocator\_type** &\_\_a)\
 **multiset** (const **multiset** &)=**default**\
 **multiset** (const **multiset** &**\_\_m**, const **\_\_type\_identity\_t**\< **allocator\_type** \> &\_\_a)\
 **multiset** (**initializer\_list**\< value\_type \> **\_\_l**, const \_Compare &\_\_comp=\_Compare(), const **allocator\_type** &\_\_a=**allocator\_type**())\
 **multiset** (**initializer\_list**\< value\_type \> **\_\_l**, const **allocator\_type** &\_\_a)\
 **multiset** (**multiset** &&)=**default**\
 **multiset** (**multiset** &&**\_\_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\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **std::pair**\< **iterator**, **iterator** \> **equal\_range** (const **\_Kt** &\_\_x)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **std::pair**\< **const\_iterator**, **const\_iterator** \> **equal\_range** (const **\_Kt** &\_\_x) const\
 **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**)\
 size\_type **erase** (const **key\_type** &\_\_x)\
 \_GLIBCXX\_ABI\_TAG\_CXX11 **iterator** **erase** (**const\_iterator** \_\_first, **const\_iterator** \_\_last)\
 \_GLIBCXX\_ABI\_TAG\_CXX11 **iterator** **erase** (**const\_iterator** **\_\_position**)\
 node\_type **extract** (const **key\_type** &**\_\_key**)\
 node\_type **extract** (**const\_iterator** **\_\_position**)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **iterator** **find** (const **\_Kt** &\_\_x)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **const\_iterator** **find** (const **\_Kt** &\_\_x) const\
 **iterator** **find** (const **key\_type** &\_\_x)\
 **const\_iterator** **find** (const **key\_type** &\_\_x) const\
 template\<**typename** **\_InputIterator** \> **void** **insert** (**\_InputIterator** \_\_first, **\_InputIterator** \_\_last)\
 **iterator** **insert** (const value\_type &\_\_x)\
 **iterator** **insert** (**const\_iterator** **\_\_hint**, node\_type &&**\_\_nh**)\
 **iterator** **insert** (**const\_iterator** **\_\_position**, const value\_type &\_\_x)\
 **iterator** **insert** (**const\_iterator** **\_\_position**, value\_type &&\_\_x)\
 **void** **insert** (**initializer\_list**\< value\_type \> **\_\_l**)\
 **iterator** **insert** (node\_type &&**\_\_nh**)\
 **iterator** **insert** (value\_type &&\_\_x)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **iterator** **lower\_bound** (const **\_Kt** &\_\_x)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **const\_iterator** **lower\_bound** (const **\_Kt** &\_\_x) const\
 **iterator** **lower\_bound** (const **key\_type** &\_\_x)\
 **const\_iterator** **lower\_bound** (const **key\_type** &\_\_x) const\
 **multiset** & **operator=** (const **multiset** &)=**default**\
 **multiset** & **operator=** (**initializer\_list**\< value\_type \> **\_\_l**)\
 **multiset** & **operator=** (**multiset** &&)=**default**\
 **const\_reverse\_iterator** **rbegin** () const noexcept\
 **reverse\_iterator** **rbegin** () noexcept\
 **const\_reverse\_iterator** **rend** () const noexcept\
 **reverse\_iterator** **rend** () noexcept\
 **void** **swap** (**multiset** &\_\_x) noexcept(/\***conditional** \*/)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **iterator** **upper\_bound** (const **\_Kt** &\_\_x)\
 template\<**typename** **\_Kt** , **typename** **\_Req**  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> **const\_iterator** **upper\_bound** (const **\_Kt** &\_\_x) const\
 **iterator** **upper\_bound** (const **key\_type** &\_\_x)\
 **const\_iterator** **upper\_bound** (const **key\_type** &\_\_x) const\

### Protected Member Functions

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

### Friends

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

## Detailed Description

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

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

## Author

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