__GNU_PBDS::DETAIL::CC_HT_MAP(3)

πŸ“¦
version 16.2.1+r23+gd564253eb6c8 Β· 6 versions
, in arch rolling, fedora 44

🌸 NAME 🌸

okay so bestie, welcome to a page from the Library Functions Manual, section 3 (that's the library-functions girlies, iykyk πŸ’…), and the main character today is:

__gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy >

she's a collision-chaining hash-based container and honestly? she's iconic. πŸ‘‘


🌈 SYNOPSIS 🌈

#include <cc_ht_map_.hpp>

Inherits __gnu_pbds::detail::hash_eq_fn< Key, Eq_Fn, _Alloc, Store_Hash >, , and __gnu_pbds::detail::ranged_hash_fn< Key, Hash_Fn, _Alloc, Comb_Hash_Fn, Store_Hash >.

(yes bestie, that stray comma-comma is literally in the original, we do not touch it, we respect the source πŸ™ˆ)

✨ Public Types ✨

  • enum { store_hash } β€” value stores hash, true or false. fr fr, that's the whole bit. πŸŽ€
  • typedef _Alloc allocator_type
  • typedef Comb_Hash_Fn comb_hash_fn
  • typedef const_iterator_ const_iterator
  • typedef traits_base::const_pointer const_pointer
  • typedef traits_base::const_reference const_reference
  • typedef _Alloc::difference_type difference_type
  • typedef Eq_Fn eq_fn
  • typedef Hash_Fn hash_fn
  • typedef iterator_ iterator
  • typedef traits_base::key_const_pointer key_const_pointer
  • typedef traits_base::key_const_reference key_const_reference
  • typedef traits_base::key_pointer key_pointer
  • typedef traits_base::key_reference key_reference
  • typedef traits_base::key_type key_type
  • typedef traits_base::mapped_const_pointer mapped_const_pointer
  • typedef traits_base::mapped_const_reference mapped_const_reference
  • typedef traits_base::mapped_pointer mapped_pointer
  • typedef traits_base::mapped_reference mapped_reference
  • typedef traits_base::mapped_type mapped_type
  • typedef __nothrowcopy::indicator no_throw_indicator
  • typedef point_const_iterator_ point_const_iterator
  • typedef point_iterator_ point_iterator
  • typedef traits_base::pointer pointer
  • typedef traits_base::reference reference
  • typedef Resize_Policy resize_policy
  • typedef _Alloc::size_type size_type
  • typedef integral_constant< int, Store_Hash > store_extra
  • typedef stored_data< value_type, size_type, Store_Hash > stored_data_type
  • typedef traits_base::value_type value_type

thirty whole typedefs. she said "let me be thorough" and honestly? ate. πŸ’–

πŸ¦‹ Public Member Functions πŸ¦‹

  • cc_ht_map (const cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy > &)
  • cc_ht_map (const Hash_Fn &)
  • cc_ht_map (const Hash_Fn &, const Eq_Fn &)
  • cc_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Hash_Fn &)
  • cc_ht_map (const Hash_Fn &, const Eq_Fn &, const Comb_Hash_Fn &, const Resize_Policy &)
  • iterator begin ()
  • const_iterator begin () const
  • void clear ()
  • template<typename It> void copy_from_range (It, It)
  • bool empty () const β€” true if size() == 0. πŸ’€
  • iterator end ()
  • const_iterator end () const
  • bool erase (key_const_reference)
  • template<typename Pred> size_type erase_if (Pred)
  • point_iterator find (key_const_reference)
  • point_const_iterator find (key_const_reference) const
  • point_iterator find_end ()
  • point_const_iterator find_end () const
  • Comb_Hash_Fn & get_comb_hash_fn () β€” return current comb_hash_fn.
  • const Comb_Hash_Fn & get_comb_hash_fn () const β€” return current const comb_hash_fn.
  • Eq_Fn & get_eq_fn () β€” return current eq_fn.
  • const Eq_Fn & get_eq_fn () const β€” return current const eq_fn.
  • Hash_Fn & get_hash_fn () β€” return current hash_fn.
  • const Hash_Fn & get_hash_fn () const β€” return current const hash_fn.
  • Resize_Policy & get_resize_policy () β€” return current resize_policy.
  • const Resize_Policy & get_resize_policy () const β€” return current const resize_policy.
  • void initialize ()
  • std::pair< point_iterator, bool > insert (const_reference r_val)
  • size_type max_size () const
  • mapped_reference operator[] (key_const_reference r_key)
  • size_type size () const
  • void swap (cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy > &)

πŸŽ€ Public Attributes πŸŽ€

  • no_throw_indicator m_no_throw_copies_indicator
  • store_extra m_store_extra_indicator

πŸ’œ Friends πŸ’œ

  • class const_iterator_
  • class iterator_

🌟 Detailed Description 🌟

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy>
class __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn, Eq_Fn,
_Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy >

"A collision-chaining hash-based container."

that's the whole vibe, bestie. that's what she is. no notes. ✨

Template Parameters

  • Key β€” key type.
  • Mapped β€” map type.
  • Hash_Fn β€” hashing functor. default is __gnu_cxx::hash.
  • Eq_Fn β€” equal functor. default std::equal_to<Key>
  • _Alloc β€” allocator type.
  • Store_Hash β€” if key type stores extra metadata. defaults to false.
  • Comb_Hash_Fn β€” combining hash functor. if Hash_Fn is not null_type, then this is the ranged-hash functor; otherwise, this is the range-hashing functor. XXX(see Design::Hash-Based Containers::Hash Policies.) default direct_mask_range_hashing.
  • Resize_Policy β€” resizes hash. defaults to hash_standard_resize_policy, using hash_exponential_size_policy and hash_load_check_resize_trigger.

Bases are: detail::hash_eq_fn, Resize_Policy, detail::ranged_hash_fn, detail::types_traits. (Optional: detail::debug_map_base.)


πŸ”₯ Member Enumeration Documentation πŸ”₯

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy>
anonymous enum

value stores hash, true or false. 🫢


πŸ‘‘ Member Function Documentation πŸ‘‘

empty () const [inline], [nodiscard]

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> bool __gnu_pbds::detail::cc_ht_map< Key, Mapped, Hash_Fn,
    Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy >::empty () const

true if size() == 0. bestie if this returns true, the container is empty, that's it, that's the tea. 😭


get_comb_hash_fn ()

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> Comb_Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key,
    Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_comb_hash_fn ()

return current comb_hash_fn. ✨


get_comb_hash_fn () const

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> const Comb_Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key,
    Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_comb_hash_fn () const

return current const comb_hash_fn. πŸ¦‹


get_eq_fn ()

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> Eq_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped,
    Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_eq_fn ()

return current eq_fn. πŸ’…


get_eq_fn () const

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> const Eq_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped,
    Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_eq_fn () const

return current const eq_fn. 🌸


get_hash_fn ()

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key, Mapped,
    Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_hash_fn ()

return current hash_fn. πŸ”₯


get_hash_fn () const

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> const Hash_Fn & __gnu_pbds::detail::cc_ht_map< Key,
    Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_hash_fn () const

return current const hash_fn. ⭐


get_resize_policy ()

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> Resize_Policy & __gnu_pbds::detail::cc_ht_map< Key,
    Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_resize_policy ()

return current resize_policy. 🧚


get_resize_policy () const

template<typename Key, typename Mapped, typename Hash_Fn, typename Eq_Fn,
    typename _Alloc, bool Store_Hash, typename Comb_Hash_Fn, typename
    Resize_Policy> const Resize_Policy & __gnu_pbds::detail::cc_ht_map< Key,
    Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Hash_Fn, Resize_Policy
    >::get_resize_policy () const

return current const resize_policy. πŸ’œ


πŸ’– Author πŸ’–

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


and that's the whole page bestie, no cap. she came from the libstdc++ girlies, built by Doxygen straight off the source, and she's out here doing collision-chaining hash-based container things. slay, stay hashed, and remember: the facts never change, only the vibe. πŸ’–βœ¨πŸŽ€πŸ¦‹
πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms