STD::__PROFILE::MAP(3cxx)

πŸ“¦
version 9.5.0 Β· 3 versions
, in ubuntu noble

πŸ¦‹ NAME πŸ¦‹

Hiii bestie, welcome to the std::__profile::map< _Key, _Tp, _Compare, _Allocator >(3cxx) page πŸ’– This is the Class std::map wrapper with performance instrumentation. Yes, it's a whole wrapper, and yes it's keeping receipts on your map's performance. Iconic behavior, honestly.


✨ SYNOPSIS ✨

So first things first, you gotta pull it in:

#include <map.h>

And the family tree? She inherits from map< _Key, _Tp, std::less< _Key >, std::allocator< std::pair< const _Key, _Tp > > >, and also from std::__profile::_Ordered_profile< _Cont >. Two parents, one very observant daughter 🫢


🌸 Public Types 🌸

Okay so these are all the typedefs she's serving. Memorize them, they come back later 😭

  • 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 πŸ’…

Buckle up, there are SO many of these. This is the main character list fr fr:

The constructors (she has MANY):

  • 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)))

The profile-y internal stuff πŸ‘€:

  • const _Base & _M_base () const noexcept
  • _Base & _M_base () noexcept
  • void _M_profile_iterate (int __rewind=0) const

Element access:

  • mapped_type & at (const key_type &__k)
  • const mapped_type & at (const key_type &__k) const

Iterators, going forwards:

  • const_iterator begin () const noexcept
  • iterator begin () noexcept
  • const_iterator cbegin () const noexcept
  • const_iterator cend () const noexcept

And everything else, in the order the page gives them:

  • 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 πŸ™ˆ

The behind-the-scenes girlypops:

  • void _M_profile_construct () noexcept
  • void _M_profile_destruct () noexcept
  • void _M_swap (_Ordered_profile &__other)

πŸŽ€ Protected Attributes πŸŽ€

Just the one, but she's important:

  • __gnu_profile::__map2umap_info * _M_map2umap_info

🫢 Friends 🫢

Her besties get special access (the template friends, the ones who can peek):

  • 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 ⭐

Okay here's the whole declaration, laid out all pretty:

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.

So yeah β€” she's a class, she's templated on _Key, _Tp, _Compare and _Allocator, and she lives at line 41 of file profile/map.h πŸ“


πŸ’œ Member Typedef Documentation πŸ’œ

Every typedef, with her full template signature and her home address. No skipping, bestie, we're doing all of them πŸ’…

const_iterator

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef __iterator_tracker<_Base_const_iterator, map>
    std::__profile::map< _Key, _Tp, _Compare, _Allocator >::const_iterator

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

const_reference

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Base::const_reference std::__profile::map< _Key,
    _Tp, _Compare, _Allocator >::const_reference

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

const_reverse_iterator

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef std::reverse_iterator<const_iterator>
    std::__profile::map< _Key, _Tp, _Compare, _Allocator
    >::const_reverse_iterator

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

difference_type

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Base::difference_type std::__profile::map< _Key,
    _Tp, _Compare, _Allocator >::difference_type

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

iterator

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef __iterator_tracker<_Base_iterator, map>
    std::__profile::map< _Key, _Tp, _Compare, _Allocator >::iterator

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

key_compare

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Compare std::__profile::map< _Key, _Tp, _Compare,
    _Allocator >::key_compare

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

key_type

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Key std::__profile::map< _Key, _Tp, _Compare,
    _Allocator >::key_type

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

mapped_type

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Tp std::__profile::map< _Key, _Tp, _Compare,
    _Allocator >::mapped_type

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

reference

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Base::reference std::__profile::map< _Key, _Tp,
    _Compare, _Allocator >::reference

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

reverse_iterator

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef std::reverse_iterator<iterator>
    std::__profile::map< _Key, _Tp, _Compare, _Allocator >::reverse_iterator

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

size_type

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Base::size_type std::__profile::map< _Key, _Tp,
    _Compare, _Allocator >::size_type

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

value_type

template<typename _Key , typename _Tp , typename _Compare  =
    std::less<_Key>, typename _Allocator  = std::allocator<std::pair<const
    _Key, _Tp> >> typedef _Base::value_type std::__profile::map< _Key, _Tp,
    _Compare, _Allocator >::value_type

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


and that's the end of part 1 bestie β€” there's MORE coming, don't you dare close the tab πŸ’–

πŸ’– CONSTRUCTOR & DESTRUCTOR DOCUMENTATION πŸ’–

okay bestie, heads up before we dive in: literally every single thing on this page lives inside this exact class template, so just mentally wrap this header around each one and we're golden ✨

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

Same four template params, every single time, no cap. _Key, _Tp, _Compare defaulting to std::less<_Key>, and _Allocator defaulting to std::allocator<std::pair<const _Key, _Tp>>. Periodt. πŸ’…


🫢 map β€” the "give me a comparator and an allocator" one

map(const _Compare & __comp, const _Allocator & __a = _Allocator())

It's [inline], and it's [explicit] β€” so no sneaky implicit conversions, we do not do that here πŸ™…β€β™€οΈ. Definition at line 85 of file profile/map.h.


πŸ¦‹ map β€” the "fill me from a range" one

template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>>
map(_InputIterator __first, _InputIterator __last,
    const _Compare & __comp = _Compare(), const _Allocator & __a = _Allocator())

[inline], and yes, that std::_RequireInputIter<_InputIterator> is doing a whole vibe check on your iterator before letting it in. Definition at line 95 of file profile/map.h.


πŸŽ€ map β€” the "copy me from the base" one

map(const _Base & __x)

[inline]. Definition at line 100 of file profile/map.h.


🌸 map β€” the initializer-list one (comparator + allocator edition)

map(initializer_list<value_type> __l, const _Compare & __c = _Compare(),
    const _Allocator & __a = _Allocator())

[inline]. Curly braces go in, map comes out, iconic behavior honestly. Definition at line 104 of file profile/map.h.


✨ map β€” the "allocator only" one

map(const _Allocator & __a)

[inline], and [explicit] too, so again: no accidental conversions, bestie. Definition at line 110 of file profile/map.h.


πŸ’œ map β€” the "copy constructor but you bring the allocator" one

map(const map<_Key, _Tp, _Compare, _Allocator> & __x, const _Allocator & __a)

[inline]. Definition at line 113 of file profile/map.h.


πŸ”₯ map β€” the "move constructor but you bring the allocator" one

map(map<_Key, _Tp, _Compare, _Allocator> && __x, const _Allocator & __a)

[inline], and [noexcept] β€” she's fast and she promises not to throw. main character energy fr fr. Definition at line 116 of file profile/map.h.


πŸ“ map β€” initializer list, allocator only

map(initializer_list<value_type> __l, const _Allocator & __a)

[inline]. Definition at line 120 of file profile/map.h.


🧚 map β€” range constructor, allocator only

template<typename _InputIterator>
map(_InputIterator __first, _InputIterator __last, const _Allocator & __a)

[inline]. Note this one has just the plain template<typename _InputIterator> β€” no _RequireInputIter vibe check this time. Definition at line 124 of file profile/map.h.


🌈 MEMBER FUNCTION DOCUMENTATION 🌈

Now the member functions, and girl, there are a LOT of them. Same deal as before β€” that class template header from the top of this section applies to every std::__profile::map member below, and the _Ordered_profile<_Cont> ones are templated on _Cont instead. Let's go πŸƒβ€β™€οΈπŸ’¨


πŸ’… _M_base β€” const version

const _Base & _M_base() const

[inline], [noexcept]. Definition at line 614 of file profile/map.h.


πŸ’… _M_base β€” non-const version

_Base & _M_base()

[inline], [noexcept]. Definition at line 611 of file profile/map.h.


🫢 _M_profile_construct (inherited, from _Ordered_profile<_Cont>)

template<typename _Cont>
void _M_profile_construct()

[inline], [protected], [noexcept], [inherited]. Definition at line 75 of file ordered_base.h.


🫢 _M_profile_destruct (inherited, from _Ordered_profile<_Cont>)

template<typename _Cont>
void _M_profile_destruct()

[inline], [protected], [noexcept], [inherited]. Definition at line 79 of file ordered_base.h.


πŸ¦‹ _M_profile_iterate (inherited, from _Ordered_profile<_Cont>)

template<typename _Cont>
void _M_profile_iterate(int __rewind = 0) const

[inline], [inherited]. Note it's const, and the default is __rewind = 0. Definition at line 40 of file ordered_base.h.


πŸ’œ _M_swap (inherited, from _Ordered_profile<_Cont>)

template<typename _Cont>
void _M_swap(_Ordered_profile<_Cont> & __other)

[inline], [protected], [inherited]. Definition at line 86 of file ordered_base.h.


πŸ”₯ at β€” the version that lets you write

mapped_type & at(const key_type & __k)

[inline]. Definition at line 244 of file profile/map.h.


πŸ”₯ at β€” the const version, read only, hands off

const mapped_type & at(const key_type & __k) const

[inline]. Definition at line 251 of file profile/map.h.


⭐ begin β€” const

const_iterator begin() const

[inline], [noexcept]. Definition at line 161 of file profile/map.h.


⭐ begin β€” non-const

iterator begin()

[inline], [noexcept]. Definition at line 157 of file profile/map.h.


✨ cbegin β€” const, always

const_iterator cbegin() const

[inline], [noexcept]. Definition at line 174 of file profile/map.h.


✨ cend β€” const, always

const_iterator cend() const

[inline], [noexcept]. Definition at line 178 of file profile/map.h.


🧹 clear

void clear()

[inline], [noexcept]. Definition at line 415 of file profile/map.h.


πŸ” count β€” the transparent-comparator one

template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
size_type count(const _Kt & __x) const

[inline]. That _Req default is the whole transparent-lookup gatekeeping situation, iykyk. Definition at line 473 of file profile/map.h.


πŸ” count β€” the classic key_type one

size_type count(const key_type & __x) const

[inline]. Definition at line 462 of file profile/map.h.


πŸŽ€ crbegin

const_reverse_iterator crbegin() const

[inline], [noexcept]. Definition at line 212 of file profile/map.h.


πŸŽ€ crend

const_reverse_iterator crend() const

[inline], [noexcept]. Definition at line 219 of file profile/map.h.


🌸 emplace

template<typename... _Args>
std::pair<iterator, bool> emplace(_Args &&... __args)

[inline]. Variadic, perfect-forwarding, returns a std::pair<iterator, bool> like the queen she is. Definition at line 261 of file profile/map.h.


🌸 emplace_hint

template<typename... _Args>
iterator emplace_hint(const_iterator __pos, _Args &&... __args)

[inline]. You hand her a hint __pos and she hands you back an iterator. Definition at line 273 of file profile/map.h.


πŸ¦‹ end β€” const

const_iterator end() const

[inline], [noexcept]. Definition at line 169 of file profile/map.h.


πŸ¦‹ end β€” non-const

iterator end()

[inline], [noexcept]. Definition at line 165 of file profile/map.h.


πŸ’« equal_range β€” transparent comparator, non-const

template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
std::pair<iterator, iterator> equal_range(const _Kt & __x)

[inline]. Definition at line 579 of file profile/map.h.


πŸ’« equal_range β€” transparent comparator, const

template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
std::pair<const_iterator, const_iterator> equal_range(const _Kt & __x) const

[inline]. Definition at line 602 of file profile/map.h.


🌟 equal_range β€” plain key_type, non-const

std::pair<iterator, iterator> equal_range(const key_type & __x)

[inline]. Definition at line 565 of file profile/map.h.


🌟 equal_range β€” plain key_type, const

std::pair<const_iterator, const_iterator> equal_range(const key_type & __x) const

[inline]. Definition at line 588 of file profile/map.h.


okay that's the end of this chunk bestie, don't go anywhere β€” there's more map coming and it's giving ✨ so keep scrolling πŸ’–

Okay continuing straight through the member function docs, no stopping, we're almost at the finish line 🏁

🌸 erase β€” const key_type& __x β†’ size_type

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
size_type
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::erase(const key_type& __x) [inline]

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


🌸 erase β€” const_iterator __first, const_iterator __last β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::erase(const_iterator __first, const_iterator __last) [inline]

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


🌸 erase β€” const_iterator __pos β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::erase(const_iterator __pos) [inline]

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


🌸 erase β€” iterator __pos β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::erase(iterator __pos) [inline]

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


Four erase overloads in a row, bestie. That's the whole "delete my mistakes" era of the API and honestly, iconic. πŸ’…

πŸ¦‹ find β€” transparent _Kt version, non-const β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::find(const _Kt& __x) [inline]

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


πŸ¦‹ find β€” transparent _Kt version, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::find(const _Kt& __x) const [inline]

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


πŸ¦‹ find β€” const key_type& __x β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::find(const key_type& __x) [inline]

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


πŸ¦‹ find β€” const key_type& __x, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::find(const key_type& __x) const [inline]

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


πŸŽ€ insert β€” _InputIterator __first, _InputIterator __last β†’ void

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _InputIterator>
void
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(_InputIterator __first, _InputIterator __last) [inline]

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


πŸŽ€ insert β€” _Pair&& __x β†’ std::pair<iterator, bool>

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Pair, typename = typename std::enable_if<std::is_constructible<value_type, _Pair&&>::value>::type>
std::pair<iterator, bool>
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(_Pair&& __x) [inline]

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


πŸŽ€ insert β€” const value_type& __x β†’ std::pair<iterator, bool>

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
std::pair<iterator, bool>
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(const value_type& __x) [inline]

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


πŸŽ€ insert β€” const_iterator __pos, _Pair&& __x β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Pair, typename = typename std::enable_if<std::is_constructible<value_type, _Pair&&>::value>::type>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(const_iterator __pos, _Pair&& __x) [inline]

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


πŸŽ€ insert β€” const_iterator __pos, const value_type& __x β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(const_iterator __pos, const value_type& __x) [inline]

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


πŸŽ€ insert β€” std::initializer_list<value_type> __list β†’ void

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
void
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::insert(std::initializer_list<value_type> __list) [inline]

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


Six inserts. SIX. The enable_if<std::is_constructible<value_type, _Pair&&>> glow-up on the _Pair ones is doing the absolute most and we love her for it. ✨

πŸ’œ lower_bound β€” transparent _Kt, non-const β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::lower_bound(const _Kt& __x) [inline]

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


πŸ’œ lower_bound β€” transparent _Kt, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::lower_bound(const _Kt& __x) const [inline]

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


πŸ’œ lower_bound β€” const key_type& __x β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::lower_bound(const key_type& __x) [inline]

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


πŸ’œ lower_bound β€” const key_type& __x, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::lower_bound(const key_type& __x) const [inline]

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


🌈 operator= β€” initializer_list<value_type> __l β†’ map&

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
map&
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::operator=(initializer_list<value_type> __l) [inline]

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


🌈 operator[] β€” const key_type& __k β†’ mapped_type&

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
mapped_type&
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::operator[](const key_type& __k) [inline]

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


🌈 operator[] β€” key_type&& __k β†’ mapped_type&

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
mapped_type&
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::operator[](key_type&& __k) [inline]

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


🧚 rbegin β€” const β†’ const_reverse_iterator, [noexcept]

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
const_reverse_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::rbegin() const [inline], [noexcept]

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


🧚 rbegin β†’ reverse_iterator, [noexcept]

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
reverse_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::rbegin() [inline], [noexcept]

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


🧚 rend β€” const β†’ const_reverse_iterator, [noexcept]

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
const_reverse_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::rend() const [inline], [noexcept]

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


🧚 rend β†’ reverse_iterator, [noexcept]

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
reverse_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::rend() [inline], [noexcept]

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


Reverse iterators are the "read it back to front like a situationship" of containers. And yes, every single one of these four is [noexcept], so she's calm under pressure. 🫢

⭐ swap β€” map<_Key, _Tp, _Compare, _Allocator>& __x β†’ void, [noexcept]

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
void
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::swap(map<_Key, _Tp, _Compare, _Allocator>& __x) [inline], [noexcept]

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


⭐ upper_bound β€” transparent _Kt, non-const β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::upper_bound(const _Kt& __x) [inline]

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


⭐ upper_bound β€” transparent _Kt, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
template<typename _Kt, typename _Req = typename __has_is_transparent<_Compare, _Kt>::type>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::upper_bound(const _Kt& __x) const [inline]

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


⭐ upper_bound β€” const key_type& __x β†’ iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::upper_bound(const key_type& __x) [inline]

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


⭐ upper_bound β€” const key_type& __x, const β†’ const_iterator

template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
         typename _Allocator = std::allocator<std::pair<const _Key, _Tp>>>
const_iterator
std::__profile::map<_Key, _Tp, _Compare, _Allocator>::upper_bound(const key_type& __x) const [inline]

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


And that's the entire member function roster, bestie. You made it. Go drink some water. πŸ“

πŸ—‚οΈ Member Data Documentation πŸ—‚οΈ

_M_map2umap_info β€” [protected], [inherited]

template<typename _Cont>
__gnu_profile::__map2umap_info*
std::__profile::_Ordered_profile<_Cont>::_M_map2umap_info

Definition at line 89 of file ordered_base.h.

Noticed the [inherited] tag? Yeah, this one isn't even originally hers, she got it from _Ordered_profile<_Cont> β€” it's a hand-me-down and she's wearing it better. πŸ’…

πŸ‘‘ Author πŸ‘‘

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


And that's a wrap on this whole page, babes. πŸŒˆπŸ’– The little footer down at the bottom is basically the page's signature: it tells you this doc came from libstdc++ (the version lives right there in that footer line) and it's stamped with the date the docs were generated β€” so if you ever need to know when someone last ran Doxygen over this, that's your girl. No cap. πŸŽ€βœ¨

πŸ“¦ where this page comes from