A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.
Defined in: hash_policy.hpp
Parameter | Description | Default Value |
bool 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. |
false |
typename Size_Type |
Size type. |
size_t |
Type | Definition | Description |
size_type |
Size_Type |
Size type. |
external_load_access |
External_Load_Access |
Indicates whether loads can be accessed externally |
Method | Description |
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. |
void
swap
(cc_hash_max_collision_check_resize_trigger &other)
|
Swaps content. |
These methods are only available if the external access parameter is set.
Method | Description |
inline float get_load () const |
Returns the current load. Calling this method will not compile when External_Load_Access == false. |
void set_load (float load) |
Sets the load; does not resize the container. It is the responsibility of the user to pass an appropriate load to this function. Calling this method will not compile when External_Load_Access == false. |
Notifications called during an insert operation.
Method | Description |
inline void notify_insert_search_start () |
Notifies a search started. |
inline void notify_insert_search_collision () |
Notifies a search encountered a collision. |
inline void notify_insert_search_end () |
Notifies a search ended. |
Notifications called during a find operation.
Method | Description |
inline void notify_find_search_start () |
Notifies a search started. |
inline void notify_find_search_collision () |
Notifies a search encountered a collision. |
inline void notify_find_search_end () |
Notifies a search ended. |
Notifications called during an insert operation.
Method | Description |
inline void notify_erase_search_start () |
Notifies a search started. |
inline void notify_erase_search_collision () |
Notifies a search encountered a collision. |
inline void notify_erase_search_end () |
Notifies a search ended. |
Notifications called when the content of the table changes in a way that can affect the resize policy.
Method | Description |
inline void notify_inserted (size_type num_entries) |
Notifies an element was inserted. |
inline void notify_erased (size_type num_entries) |
Notifies an element was erased. |
void notify_cleared () |
Notifies the table was cleared. |
Notifications called when the table changes size.
Method | Description |
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. |
void notify_externally_resized (size_type new_size) |
Notifies the table was resized externally. |
Called to query whether/how to resize.
Method | Description |
inline bool is_resize_needed () const |
Queries whether a resize is needed. |
inline 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. |