cc_hash_max_collision_check_resize_trigger Interface

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

Template Parameters

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

Public Types and Constants

General Definitions

Type Definition Description
size_type
Size_Type

Size type.

external_load_access
External_Load_Access

Indicates whether loads can be accessed externally

Public Methods

Constructors, Destructor, and Related

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.

Load Access Methods

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.

Protected Methods

Insert Search Notifications.

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.

Find Search Notifications.

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.

Erase Search Notifications.

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.

Content Change Notifications

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.

Size Change Notifications

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.

Queries

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.