---
name: "std::__profile::map"
section: "3cxx"
platform: "linux"
package: "libstdc++-9-doc"
version: "9.3.0-22"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/std::__profile::map"
---

# std::\_\_profile::map(3cxx)

Class std::map wrapper with performance instrumentation.

## NAME

std::\_\_profile::map\< \_Key, \_Tp, \_Compare, \_Allocator \> - Class std::map wrapper with performance instrumentation.

## SYNOPSIS

Inherits map\< \_Key, \_Tp, std::less\< \_Key \>, std::allocator\< std::pair\< const \_Key, \_Tp \> \> \>, and std::\_\_profile::\_Ordered\_profile\< \_Cont \>.

### Public Types

typedef \_\_iterator\_tracker\< \_Base\_const\_iterator, **map** \> **const\_iterator**\
 typedef \_Base::const\_reference **const\_reference**\
 typedef **std::reverse\_iterator**\< const\_iterator \> **const\_reverse\_iterator**\
 typedef \_Base::difference\_type **difference\_type**\
 typedef \_\_iterator\_tracker\< \_Base\_iterator, **map** \> **iterator**\
 typedef \_Compare **key\_compare**\
 typedef \_Key **key\_type**\
 typedef \_Tp **mapped\_type**\
 typedef \_Base::reference **reference**\
 typedef **std::reverse\_iterator**\< iterator \> **reverse\_iterator**\
 typedef \_Base::size\_type **size\_type**\
 typedef \_Base::value\_type **value\_type**\

### Public Member Functions

template\<typename \_InputIterator \> **map** (\_InputIterator \_\_first, \_InputIterator \_\_last, const \_Allocator &\_\_a)\
 template\<typename \_InputIterator , typename  = std::\_RequireInputIter\<\_InputIterator\>\> **map** (\_InputIterator \_\_first, \_InputIterator \_\_last, const \_Compare &\_\_comp=\_Compare(), const \_Allocator &\_\_a=\_Allocator())\
 **map** (const \_Allocator &\_\_a)\
 **map** (const **\_Base** &\_\_x)\
 **map** (const \_Compare &\_\_comp, const \_Allocator &\_\_a=\_Allocator())\
 **map** (const **map** &)=default\
 **map** (const **map** &\_\_x, const \_Allocator &\_\_a)\
 **map** (**initializer\_list**\< value\_type \> \_\_l, const \_Allocator &\_\_a)\
 **map** (**initializer\_list**\< value\_type \> \_\_l, const \_Compare &\_\_c=\_Compare(), const \_Allocator &\_\_a=\_Allocator())\
 **map** (**map** &&)=default\
 **map** (**map** &&\_\_x, const \_Allocator &\_\_a) noexcept(noexcept(**\_Base**(std::move(\_\_x), \_\_a)))\
 const **\_Base** & **\_M\_base** () const noexcept\
 **\_Base** & **\_M\_base** () noexcept\
 void **\_M\_profile\_iterate** (int \_\_rewind=0) const\
 mapped\_type & **at** (const key\_type &\_\_k)\
 const mapped\_type & **at** (const key\_type &\_\_k) const\
 const\_iterator **begin** () const noexcept\
 iterator **begin** () noexcept\
 const\_iterator **cbegin** () const noexcept\
 const\_iterator **cend** () const noexcept\
 void **clear** () noexcept\
 template\<typename \_Kt , typename \_Req  = typename \_\_has\_is\_transparent\<\_Compare, \_Kt\>::type\> size\_type **count** (const \_Kt &\_\_x) const\
 size\_type **count** (const key\_type &\_\_x) const\
 **const\_reverse\_iterator** **crbegin** () const noexcept\
 **const\_reverse\_iterator** **crend** () const noexcept\
 template\<typename... \_Args\> **std::pair**\< iterator, bool \> **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\
 size\_type **erase** (const key\_type &\_\_x)\
 iterator **erase** (const\_iterator \_\_first, const\_iterator \_\_last)\
 iterator **erase** (const\_iterator \_\_pos)\
 iterator **erase** (iterator \_\_pos)\
 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)\
 template\<typename \_Pair , typename  = typename std::enable\_if\<std::is\_constructible\<value\_type,						    \_Pair&&\>::value\>::type\> **std::pair**\< iterator, bool \> **insert** (\_Pair &&\_\_x)\
 **std::pair**\< iterator, bool \> **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 \_\_pos, \_Pair &&\_\_x)\
 iterator **insert** (const\_iterator \_\_pos, const value\_type &\_\_x)\
 void **insert** (**std::initializer\_list**\< value\_type \> \_\_list)\
 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\
 **map** & **operator=** (const **map** &)=default\
 **map** & **operator=** (**initializer\_list**\< value\_type \> \_\_l)\
 **map** & **operator=** (**map** &&)=default\
 mapped\_type & **operator\[\]** (const key\_type &\_\_k)\
 mapped\_type & **operator\[\]** (key\_type &&\_\_k)\
 **const\_reverse\_iterator** **rbegin** () const noexcept\
 **reverse\_iterator** **rbegin** () noexcept\
 **const\_reverse\_iterator** **rend** () const noexcept\
 **reverse\_iterator** **rend** () noexcept\
 void **swap** (**map** &\_\_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\_profile\_construct** () noexcept\
 void **\_M\_profile\_destruct** () noexcept\
 void **\_M\_swap** (\_Ordered\_profile &\_\_other)\

### Protected Attributes

**\_\_gnu\_profile::\_\_map2umap\_info** \* **\_M\_map2umap\_info**\

### Friends

template\<typename \_K1 , typename \_T1 , typename \_C1 , typename \_A1 \> bool **operator\<** (const **map**\< \_K1, \_T1, \_C1, \_A1 \> &, const **map**\< \_K1, \_T1, \_C1, \_A1 \> &)\
 template\<typename \_K1 , typename \_T1 , typename \_C1 , typename \_A1 \> bool **operator==** (const **map**\< \_K1, \_T1, \_C1, \_A1 \> &, const **map**\< \_K1, \_T1, \_C1, \_A1 \> &)\

## Detailed Description

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

class std::\_\_profile::map\< \_Key, \_Tp, \_Compare, \_Allocator \>" Class std::map wrapper with performance instrumentation.

Definition at line 41 of file profile/map.h.

## Author

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