libstdc++
__gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > Class Template Reference

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)
 
float get_load () const
 
void set_load (float load)
 
void swap (cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > &other)
 

Protected Member Functions

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_entries)
 
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_entries)
 
void notify_resized (size_type new_size)
 

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.

Definition at line 293 of file hash_policy.hpp.

Member Enumeration Documentation

◆ anonymous enum

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.

Definition at line 298 of file hash_policy.hpp.

Constructor & Destructor Documentation

◆ cc_hash_max_collision_check_resize_trigger()

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.

Member Function Documentation

◆ get_load()

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.

◆ is_grow_needed()

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
inlineprotected

Queries whether a grow is needed. This method is called only if this object indicated is needed.

◆ is_resize_needed()

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
inlineprotected

Queries whether a resize is needed.

◆ notify_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_cleared ( )
protected

Notifies the table was cleared.

◆ notify_erase_search_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_collision ( )
inlineprotected

Notifies a search encountered a collision.

◆ notify_erase_search_end()

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 ( )
inlineprotected

Notifies a search ended.

◆ notify_erase_search_start()

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 ( )
inlineprotected

Notifies an erase search started.

◆ notify_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_erased ( size_type  num_entries)
inlineprotected

Notifies an element was erased.

◆ notify_externally_resized()

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.

◆ notify_find_search_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_collision ( )
inlineprotected

Notifies a search encountered a collision.

◆ notify_find_search_end()

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 ( )
inlineprotected

Notifies a search ended.

◆ notify_find_search_start()

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 ( )
inlineprotected

Notifies a find search started.

◆ notify_insert_search_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_collision ( )
inlineprotected

Notifies a search encountered a collision.

◆ notify_insert_search_end()

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 ( )
inlineprotected

Notifies a search ended.

◆ notify_insert_search_start()

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 ( )
inlineprotected

Notifies an insert search started.

◆ notify_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_inserted ( size_type  num_entries)
inlineprotected

Notifies an element was inserted.

◆ notify_resized()

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.

◆ set_load()

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.


The documentation for this class was generated from the following file: