__GNU_PBDS::CC_HASH_MAX_COLLISION_CHECK_RESIZE_TRIGGER(3cxx)

πŸ’… __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > πŸ’…

okay so bestie, welcome to the 3cxx manual page for one of libstdc++'s fancy little hash-policy gremlins ✨ this one is a resize trigger policy β€” basically the thing that taps the table on the shoulder and is like "girl… we're getting crowded, time to grow" 🫢


🌸 NAME 🌸

__gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > β€” a resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor. no cap, that's literally its whole job πŸ’…


✨ SYNOPSIS ✨

#include <hash_policy.hpp>

πŸŽ€ Public Types πŸŽ€

  • enum { external_load_access }
  • typedef Size_Type size_type

πŸ’– Public Member Functions πŸ’–

  • cc_hash_max_collision_check_resize_trigger (float load=0.5) β€” default constructor, or constructor taking load, a __load factor which it will attempt to maintain.
  • float get_load () const β€” returns the current load.
  • void set_load (float load) β€” sets the load; does not resize the container (she's just taking notes, not redecorating 🫢).
  • void swap (cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > &other) β€” swaps with other.

πŸ¦‹ Protected Member Functions πŸ¦‹

  • bool is_grow_needed (size_type size, size_type num_entries) const β€” queries whether a grow is needed. This method is called only if this object indicated is needed.
  • bool is_resize_needed () const β€” queries whether a resize is needed.
  • void notify_cleared () β€” notifies the table was cleared.
  • void notify_erase_search_collision () β€” notifies a search encountered a collision.
  • void notify_erase_search_end () β€” notifies a search ended.
  • void notify_erase_search_start () β€” notifies an erase search started.
  • void notify_erased (size_type num_entries) β€” notifies an element was erased.
  • void notify_externally_resized (size_type new_size) β€” notifies the table was resized externally.
  • void notify_find_search_collision () β€” notifies a search encountered a collision.
  • void notify_find_search_end () β€” notifies a search ended.
  • void notify_find_search_start () β€” notifies a find search started.
  • void notify_insert_search_collision () β€” notifies a search encountered a collision.
  • void notify_insert_search_end () β€” notifies a search ended.
  • void notify_insert_search_start () β€” notifies an insert search started.
  • void notify_inserted (size_type num_entries) β€” notifies an element was inserted.
  • void notify_resized (size_type new_size) β€” notifies the table was resized as a result of this object's signifying that a resize is needed.

🌈 Detailed Description 🌈

template<bool External_Load_Access = false, typename Size_Type =
    std::size_t>
class __gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >

"A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor." πŸ‘‘ that's the quote, that's the vibe, that's the whole personality.


πŸ“ Member Enumeration Documentation πŸ“

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

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. iykyk, it's giving "choose your fighter" energy πŸ’€

πŸ”₯ Constructor & Destructor Documentation πŸ”₯

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t>
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type
>::cc_hash_max_collision_check_resize_trigger (float load = 0.5)

Default constructor, or constructor taking load, a __load factor which it will attempt to maintain. yes bestie, it's got a default and it's got range πŸŽ€


πŸ’œ Member Function Documentation πŸ’œ

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> float
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::get_load () const [inline]

Returns the current load. that's it, that's the function 🫢

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> bool
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::is_grow_needed (size_type size,
size_type num_entries) const [inline],  [protected]

Queries whether a grow is needed. This method is called only if this object indicated is needed. (yes, that sentence is a little circular, but it's canon πŸ’…)

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> bool
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::is_resize_needed () const [inline],
[protected]

Queries whether a resize is needed.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_cleared () [protected]

Notifies the table was cleared.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_erase_search_collision ()
[inline],  [protected]

Notifies a search encountered a collision.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_erase_search_end () [inline],
[protected]

Notifies a search ended.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_erase_search_start ()
[inline],  [protected]

Notifies an erase search started.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_erased (size_type num_entries)
[inline],  [protected]

Notifies an element was erased.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_externally_resized (size_type
new_size) [protected]

Notifies the table was resized externally.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_find_search_collision ()
[inline],  [protected]

Notifies a search encountered a collision.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_find_search_end () [inline],
[protected]

Notifies a search ended.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_find_search_start () [inline],
[protected]

Notifies a find search started.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_insert_search_collision ()
[inline],  [protected]

Notifies a search encountered a collision.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_insert_search_end () [inline],
[protected]

Notifies a search ended.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_insert_search_start ()
[inline],  [protected]

Notifies an insert search started.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_inserted (size_type
num_entries) [inline],  [protected]

Notifies an element was inserted.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::notify_resized (size_type new_size)
[protected]

Notifies the table was resized as a result of this object's signifying that a resize is needed.

template<bool External_Load_Access = false, typename Size_Type  =
    std::size_t> void
__gnu_pbds::cc_hash_max_collision_check_resize_trigger<
External_Load_Access, Size_Type >::set_load (float load)

Sets the load; does not resize the container. again β€” she is not touching the container, she's just setting a number, periodt πŸ’…


🌟 Author 🌟

Generated automatically by Doxygen for libstdc++ from the source code. so like… nobody hand-wrote this and honestly you can tell 😭


and that's the whole page bestie!! every single flag, signature, [inline], [protected], template default and std::size_t is safely in there β€” nothing dropped, nothing invented, we ate and left no crumbs πŸ“

πŸŽ€ signing off from the 3cxx manual, brought to you by libstdc++ β€” mwah, go resize something responsibly πŸ’–πŸ¦‹