__GNU_CXX::HASH_MAP(3cxx)

πŸ’– NAME πŸ’–

okay so welcome to the 3cxx manual page, bestie β€” this is the whole vibe for __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc >. It’s giving β€œSGI extension” energy, and we are keeping every single deet, no cap. πŸ’…

✨ SYNOPSIS ✨

First up, the include line is literally this, bestie:

#include <hash_map>

πŸŽ€ Public Types πŸŽ€

These are the public type aliases, copied exactly character-for-character. Slay, but make it precise. ✨

  • typedef _Ht::allocator_type allocator_type β€” type alias, exactly as listed.
  • typedef _Ht::const_iterator const_iterator β€” type alias, exactly as listed.
  • typedef _Ht::const_pointer const_pointer β€” type alias, exactly as listed.
  • typedef _Ht::const_reference const_reference β€” type alias, exactly as listed.
  • typedef _Tp data_type β€” type alias, exactly as listed.
  • typedef _Ht::difference_type difference_type β€” type alias, exactly as listed.
  • typedef _Ht::hasher hasher β€” type alias, exactly as listed.
  • typedef _Ht::iterator iterator β€” type alias, exactly as listed.
  • typedef _Ht::key_equal key_equal β€” type alias, exactly as listed.
  • typedef _Ht::key_type key_type β€” type alias, exactly as listed.
  • typedef _Tp mapped_type β€” type alias, exactly as listed.
  • typedef _Ht::pointer pointer β€” type alias, exactly as listed.
  • typedef _Ht::reference reference β€” type alias, exactly as listed.
  • typedef _Ht::size_type size_type β€” type alias, exactly as listed.
  • typedef _Ht::value_type value_type β€” type alias, exactly as listed.

πŸ’… Public Member Functions πŸ’…

Here’s the full member-function lineup, bestie β€” every signature is kept exactly as written, no edits, no β€œhelpful” fixes, periodt. 🫢

  • template<class _InputIterator > hash_map (_InputIterator __f, _InputIterator __l) β€” constructor overload, exact.
  • template<class _InputIterator > hash_map (_InputIterator __f, _InputIterator __l, size_type __n) β€” constructor overload, exact.
  • template<class _InputIterator > hash_map (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf) β€” constructor overload, exact.
  • template<class _InputIterator > hash_map (_InputIterator __f, _InputIterator __l, size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__a=allocator_type()) β€” constructor overload, exact.
  • hash_map (size_type __n) β€” constructor overload, exact.
  • hash_map (size_type __n, const hasher &__hf) β€” constructor overload, exact.
  • hash_map (size_type __n, const hasher &__hf, const key_equal &__eql, const allocator_type &__a=allocator_type()) β€” constructor overload, exact.
  • iterator begin () β€” member function, exact.
  • const_iterator begin () const β€” member function, exact.
  • size_type bucket_count () const β€” member function, exact.
  • void clear () β€” member function, exact.
  • size_type count (const key_type &__key) const β€” member function, exact.
  • size_type elems_in_bucket (size_type __n) const β€” member function, exact.
  • bool empty () const β€” member function, exact.
  • iterator end () β€” member function, exact.
  • const_iterator end () const β€” member function, exact.
  • pair< iterator, iterator > equal_range (const key_type &__key) β€” member function, exact.
  • pair< const_iterator, const_iterator > equal_range (const key_type &__key) const β€” member function, exact.
  • size_type erase (const key_type &__key) β€” member function, exact.
  • void erase (iterator __f, iterator __l) β€” member function, exact.
  • void erase (iterator __it) β€” member function, exact.
  • iterator find (const key_type &__key) β€” member function, exact.
  • const_iterator find (const key_type &__key) const β€” member function, exact.
  • allocator_type get_allocator () const β€” member function, exact.
  • hasher hash_funct () const β€” member function, exact.
  • template<class _InputIterator > void insert (_InputIterator __f, _InputIterator __l) β€” member function, exact.
  • pair< iterator, bool > insert (const value_type &__obj) β€” member function, exact.
  • pair< iterator, bool > insert_noresize (const value_type &__obj) β€” member function, exact.
  • key_equal key_eq () const β€” member function, exact.
  • size_type max_bucket_count () const β€” member function, exact.
  • size_type max_size () const β€” member function, exact.
  • _Tp & operator[] (const key_type &__key) β€” member function, exact.
  • void resize (size_type __hint) β€” member function, exact.
  • size_type size () const β€” member function, exact.
  • void swap (hash_map &__hs) β€” member function, exact.

🫢 Friends 🫢

There is exactly one friend listed, and it’s this equality-operator template. Bestie, I’m putting it in a code block so the spacing survives the group chat. πŸ’œ

template<class _K1 , class _T1 , class _HF , class _EqK , class _Al >
    bool operator== (const hash_map< _K1, _T1, _HF, _EqK, _Al > &, const
    hash_map< _K1, _T1, _HF, _EqK, _Al > &)

🌈 Detailed Description 🌈

okay so the detailed description is short but iconic. The class template is this, exactly:

template<class _Key, class _Tp, class _HashFn = hash<_Key>, class _EqualKey
    = equal_to<_Key>, class _Alloc = allocator<_Tp>>
class __gnu_cxx::hash_map< _Key, _Tp, _HashFn, _EqualKey, _Alloc >

And the official note is: β€œThis is an SGI extension.” That’s the whole sentence, bestie β€” no extra lore added, fr fr. ✨

πŸ“ Todo πŸ“

The todo is literally: β€œNeeds documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation_style.html”. So yeah β€” documentation vibes are pending. 🫠

πŸ‘‘ Author πŸ‘‘

β€œGenerated automatically by Doxygen for libstdc++ from the source code.” That’s the whole author note, exactly as given. πŸ’–


okurrr bye bestie πŸ’… β€” this page is from libstdc++ and the 3cxx section, generated automatically by Doxygen from the source code. The footer source/version text is this wild little string: libst__gnu_cxx::hash...alKey, _Alloc >(3cxx), and no separate date is listed. πŸŽ€