| __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >(3) | Library Functions Manual | __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >(3) | 
NAME¶
__gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type > - A resize policy which delegates operations to size and trigger policies.
SYNOPSIS¶
Inherits __gnu_pbds::hash_exponential_size_policy< Size_Type >, and __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >.
Public Types¶
enum { external_load_access }
  
  enum { external_size_access }
  
  typedef Size_Policy size_policy
  
  typedef Size_Type size_type
  
  typedef Trigger_Policy trigger_policy
  
  
Public Member Functions¶
hash_standard_resize_policy ()
  
  Default constructor. hash_standard_resize_policy (const Size_Policy
    &r_size_policy)
  
  constructor taking some policies r_size_policy will be copied by the
    Size_Policy object of this object. hash_standard_resize_policy (const
    Size_Policy &r_size_policy, const Trigger_Policy &r_trigger_policy)
  
  constructor taking some policies. r_size_policy will be copied by the
    Size_Policy object of this object. r_trigger_policy will be copied by the
    Trigger_Policy object of this object. size_type get_actual_size ()
    const
  
  Returns the actual size of the container. std::pair< float, float
    > get_loads () const
  
  Returns a pair of the minimal and maximal loads, respectively. Size_Policy
    & get_size_policy ()
  
  Access to the Size_Policy object used. const Size_Policy &
    get_size_policy () const
  
  Const access to the Size_Policy object used. Trigger_Policy &
    get_trigger_policy ()
  
  Access to the Trigger_Policy object used. const Trigger_Policy &
    get_trigger_policy () const
  
  Access to the Trigger_Policy object used. void resize (size_type
    suggested_new_size)
  
  Resizes the container to suggested_new_size, a suggested size (the actual size
    will be determined by the Size_Policy object). void set_loads
    (std::pair< float, float > load_pair)
  
  Sets the loads through a pair of the minimal and maximal loads, respectively.
    void swap (hash_exponential_size_policy< Size_Type >
    &other)
  
  void swap (hash_load_check_resize_trigger &other)
  
  void swap (hash_standard_resize_policy< Size_Policy,
    Trigger_Policy, External_Size_Access, Size_Type > &other)
  
  
Protected Member Functions¶
size_type get_nearest_larger_size (size_type size) const
  
  size_type get_nearest_smaller_size (size_type size) const
  
  size_type get_new_size (size_type size, size_type num_used_e) const
  
  Queries what the new size should be, when the container is resized naturally.
    The current __size of the container is size, and the number of used entries
    within the container is num_used_e. 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_e)
  
  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_e)
  
  void notify_resized (size_type new_size)
  
  
Detailed Description¶
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t>¶
class __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >" A resize policy which delegates operations to size and trigger policies.
Member Enumeration Documentation¶
template<bool External_Load_Access = false, typename Size_Type = std::size_t> anonymous enum [inherited]¶
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.
Constructor & Destructor Documentation¶
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy ()¶
Default constructor.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy (const Size_Policy & r_size_policy)¶
constructor taking some policies r_size_policy will be copied by the Size_Policy object of this object.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::hash_standard_resize_policy (const Size_Policy & r_size_policy, const Trigger_Policy & r_trigger_policy)¶
constructor taking some policies. r_size_policy will be copied by the Size_Policy object of this object. r_trigger_policy will be copied by the Trigger_Policy object of this object.
Member Function Documentation¶
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_actual_size () const [inline]¶
Returns the actual size of the container.
template<bool External_Load_Access = false, typename Size_Type = std::size_t> std::pair<float, float> __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::get_loads () const [inline], [inherited]¶
Returns a pair of the minimal and maximal loads, respectively.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> size_type __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_new_size (size_type size, size_type num_used_e) const [protected]¶
Queries what the new size should be, when the container is resized naturally. The current __size of the container is size, and the number of used entries within the container is num_used_e.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> Size_Policy& __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy ()¶
Access to the Size_Policy object used.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> const Size_Policy& __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_size_policy () const¶
Const access to the Size_Policy object used.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> Trigger_Policy& __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy ()¶
Access to the Trigger_Policy object used.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> const Trigger_Policy& __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::get_trigger_policy () const¶
Access to the Trigger_Policy object used.
template<typename Size_Policy = hash_exponential_size_policy<>, typename Trigger_Policy = hash_load_check_resize_trigger<>, bool External_Size_Access = false, typename Size_Type = std::size_t> void __gnu_pbds::hash_standard_resize_policy< Size_Policy, Trigger_Policy, External_Size_Access, Size_Type >::resize (size_type suggested_new_size)¶
Resizes the container to suggested_new_size, a suggested size (the actual size will be determined by the Size_Policy object).
template<bool External_Load_Access = false, typename Size_Type = std::size_t> void __gnu_pbds::hash_load_check_resize_trigger< External_Load_Access, Size_Type >::set_loads (std::pair< float, float > load_pair) [inherited]¶
Sets the loads through a pair of the minimal and maximal loads, respectively.
Author¶
Generated automatically by Doxygen for libstdc++ from the source code.
| Mon Dec 18 2023 | libstdc++ |