__GNU_PBDS::HASH_STANDARD_RESIZE_POLICY(3cxx)

✨ NAME ✨

okay so bestie, this is the 3cxx manual page for __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type > β€” a resize policy which delegates operations to size and trigger policies. slay πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <hash_policy.hpp>

Inherits __gnu_pbds::hash_exponential_size_policy< Size_Type >, and
__gnu_pbds::hash_load_check_resize_trigger< External_Load_Access,
Size_Type >.

πŸ’– Public Types πŸ’–

  • enum { external_load_access } β€” the external-load-access enum vibe ✨
  • enum { external_size_access } β€” the external-size-access enum vibe ✨
  • typedef Size_Policy size_policy β€” this is the Size_Policy type, periodt
  • typedef Size_Type size_type β€” this is the Size_Type type, no cap
  • typedef Trigger_Policy trigger_policy β€” this is the Trigger_Policy type, iconic

πŸŽ€ Public Member Functions πŸŽ€

  • hash_standard_resize_policy () β€” default constructor 🫢
  • hash_standard_resize_policy (const Size_Policy &r_size_policy) β€” constructor taking some policies; r_size_policy will be copied by the Size_Policy object of this object.
  • hash_standard_resize_policy (const Size_Policy &r_size_policy, const Trigger_Policy &r_trigger_policy) β€” constructor taking some policies; r_size_policy will be copied by the Size_Policy object of this object, and r_trigger_policy will be copied by the Trigger_Policy object of this object.
  • size_type get_actual_size () const β€” returns the actual size of the container ✨
  • std::pair< float, float > get_loads () const β€” returns a pair of the minimal and maximal loads, respectively.
  • Size_Policy & get_size_policy () β€” access to the Size_Policy object used.
  • const Size_Policy & get_size_policy () const β€” const access to the Size_Policy object used.
  • Trigger_Policy & get_trigger_policy () β€” access to the Trigger_Policy object used.
  • const Trigger_Policy & get_trigger_policy () const β€” access to the Trigger_Policy object used.
  • void resize (size_type suggested_new_size) β€” resizes the container to suggested_new_size, a suggested size (the actual size will be determined by the Size_Policy object).
  • void set_loads (std::pair< float, float > load_pair) β€” sets the loads through a pair of the minimal and maximal loads, respectively.
  • void swap (hash_exponential_size_policy< Size_Type > &other) β€” the original has no extra description for this one, just the signature 🫢
  • void swap (hash_load_check_resize_trigger &other) β€” again, no extra description in the source, just the signature πŸ’…
  • void swap (hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type > &other) β€” same vibe, signature only ✨

🌸 Protected Member Functions 🌸

  • size_type get_nearest_larger_size (size_type size) const
  • size_type get_nearest_smaller_size (size_type size) const
  • size_type get_new_size (size_type size, size_type num_used_e) const β€” queries what the new size should be, when the container is resized naturally. The current __size of the container is size, and the number of used entries within the container is num_used_e.
  • bool is_grow_needed (size_type size, size_type num_entries) const
  • bool is_resize_needed () const
  • void notify_cleared ()
  • void notify_erase_search_collision ()
  • void notify_erase_search_end ()
  • void notify_erase_search_start ()
  • void notify_erased (size_type num_e)
  • void notify_externally_resized (size_type new_size)
  • void notify_find_search_collision ()
  • void notify_find_search_end ()
  • void notify_find_search_start ()
  • void notify_insert_search_collision ()
  • void notify_insert_search_end ()
  • void notify_insert_search_start ()
  • void notify_inserted (size_type num_e)
  • void notify_resized (size_type new_size)

🌈 DETAILED DESCRIPTION 🌈

here’s the exact template lineup, bestie:

template<typename Size_Policy = hash_exponential_size_policy<>, typename
    Trigger_Policy = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type = std::size_t>
    class __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >"A resize policy which
    delegates operations to size and trigger policies.

in human words: it’s a resize policy which delegates operations to size and trigger policies. that’s literally the official vibe πŸ˜ŒπŸ’–


πŸŽ€ MEMBER ENUMERATION DOCUMENTATION πŸŽ€

anonymous enum [inherited]

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> anonymous enum [inherited]

Enumerator:

  • external_load_access β€” specifies whether the load factor can be accessed externally. The two options have different trade-offs in terms of flexibility, genericity, and encapsulation.

πŸ’… CONSTRUCTOR & DESTRUCTOR DOCUMENTATION πŸ’…

hash_standard_resize_policy ()

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,
    External_Size_Access, Size_Type >::hash_standard_resize_policy ()

default constructor 🫢

hash_standard_resize_policy (const Size_Policy & r_size_policy)

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,
    External_Size_Access, Size_Type >::hash_standard_resize_policy (const
    Size_Policy & r_size_policy)

constructor taking some policies; r_size_policy will be copied by the Size_Policy object of this object.

hash_standard_resize_policy (const Size_Policy & r_size_policy, const Trigger_Policy & r_trigger_policy)

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,
    External_Size_Access, Size_Type >::hash_standard_resize_policy (const
    Size_Policy & r_size_policy, const Trigger_Policy & r_trigger_policy)

constructor taking some policies. r_size_policy will be copied by the Size_Policy object of this object. r_trigger_policy will be copied by the Trigger_Policy object of this object.


πŸ”₯ MEMBER FUNCTION DOCUMENTATION πŸ”₯

get_actual_size () const [inline]

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_actual_size ()
    const [inline]

returns the actual size of the container ✨

get_loads () const [inline], [inherited]

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> std::pair< float, float >
    __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access,
    Size_Type >::get_loads () const [inline],  [inherited]

returns a pair of the minimal and maximal loads, respectively.

get_new_size (size_type size, size_type num_used_e) const [protected]

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_new_size
    (size_type size, size_type num_used_e) const [protected]

queries what the new size should be, when the container is resized naturally. The current __size of the container is size, and the number of used entries within the container is num_used_e.

get_size_policy ()

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    Size_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy ()

access to the Size_Policy object used.

get_size_policy () const

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t> const
    Size_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy ()
    const

const access to the Size_Policy object used.

get_trigger_policy ()

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t>
    Trigger_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy ()

access to the Trigger_Policy object used.

get_trigger_policy () const

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t> const
    Trigger_Policy & __gnu_pbds::hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy ()
    const

access to the Trigger_Policy object used.

resize (size_type suggested_new_size)

template<typename Size_Policy  = hash_exponential_size_policy<>, typename
    Trigger_Policy  = hash_load_check_resize_trigger<>, bool
    External_Size_Access = false, typename Size_Type  = std::size_t> void
    __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy,
    External_Size_Access, Size_Type >::resize (size_type suggested_new_size)

resizes the container to suggested_new_size, a suggested size (the actual size will be determined by the Size_Policy object).

set_loads (std::pair< float, float > load_pair) [inherited]

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void __gnu_pbds::hash_load_check_resize_trigger<
    External_Load_Access, Size_Type >::set_loads (std::pair< float, float >
    load_pair) [inherited]

sets the loads through a pair of the minimal and maximal loads, respectively.


πŸ’œ AUTHOR πŸ’œ

Generated automatically by Doxygen for libstdc++ from the source code. doxygen ate and left no crumbs 🫢


xoxo bestie πŸ’‹ β€” source/version: libstdc++; manual: 3cxx. mwah! πŸ§šβ€β™€οΈπŸ’–