A resize trigger policy based on collision checks. More...
#include <hash_policy.hpp>
Public Types | |
enum | { external_load_access = 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. More... | |
float | get_load () const |
Returns the current load. More... | |
void | set_load (float load) |
Sets the load; does not resize the container. More... | |
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 |
Queries whether a grow is needed. More... | |
bool | is_resize_needed () const |
Queries whether a resize is needed. More... | |
void | notify_cleared () |
Notifies the table was cleared. More... | |
void | notify_erase_search_collision () |
Notifies a search encountered a collision. More... | |
void | notify_erase_search_end () |
Notifies a search ended. More... | |
void | notify_erase_search_start () |
Notifies an erase search started. More... | |
void | notify_erased (size_type num_entries) |
Notifies an element was erased. More... | |
void | notify_externally_resized (size_type new_size) |
Notifies the table was resized externally. More... | |
void | notify_find_search_collision () |
Notifies a search encountered a collision. More... | |
void | notify_find_search_end () |
Notifies a search ended. More... | |
void | notify_find_search_start () |
Notifies a find search started. More... | |
void | notify_insert_search_collision () |
Notifies a search encountered a collision. More... | |
void | notify_insert_search_end () |
Notifies a search ended. More... | |
void | notify_insert_search_start () |
Notifies an insert search started. More... | |
void | notify_inserted (size_type num_entries) |
Notifies an element was inserted. More... | |
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. More... | |
Private Member Functions | |
void | calc_max_num_coll () |
void | calc_resize_needed () |
Private Attributes | |
float | m_load |
size_type | m_max_col |
size_type | m_num_col |
bool | m_resize_needed |
size_type | m_size |
A resize trigger policy based on collision checks.
It keeps the simulated load factor lower than some given load factor.
typedef Size_Type __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >::size_type |
anonymous enum |
__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.
|
private |
|
inlineprivate |
|
inline |
Returns the current load.
|
inlineprotected |
Queries whether a grow is needed.
This method is called only if this object indicated is needed.
|
inlineprotected |
Queries whether a resize is needed.
|
protected |
Notifies the table was cleared.
|
inlineprotected |
Notifies a search encountered a collision.
|
inlineprotected |
Notifies a search ended.
|
inlineprotected |
Notifies an erase search started.
|
inlineprotected |
Notifies an element was erased.
|
protected |
Notifies the table was resized externally.
|
inlineprotected |
Notifies a search encountered a collision.
|
inlineprotected |
Notifies a search ended.
|
inlineprotected |
Notifies a find search started.
|
inlineprotected |
Notifies a search encountered a collision.
|
inlineprotected |
Notifies a search ended.
|
inlineprotected |
Notifies an insert search started.
|
inlineprotected |
Notifies an element was inserted.
|
protected |
Notifies the table was resized as a result of this object's signifying that a resize is needed.
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.
void __gnu_pbds::cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type >::swap | ( | cc_hash_max_collision_check_resize_trigger< External_Load_Access, Size_Type > & | other | ) |
|
private |
|
private |
|
private |
|
private |
|
private |