41 #ifdef PB_DS_CLASS_C_DEC
45 cc_hash_max_collision_check_resize_trigger(
float load) :
50 m_resize_needed(false)
56 notify_find_search_start()
62 notify_find_search_collision()
68 notify_find_search_end()
74 notify_insert_search_start()
80 notify_insert_search_collision()
86 notify_insert_search_end()
87 { calc_resize_needed(); }
92 notify_erase_search_start()
98 notify_erase_search_collision()
104 notify_erase_search_end()
110 notify_inserted(size_type)
116 notify_erased(size_type)
117 { m_resize_needed =
true; }
123 { m_resize_needed =
false; }
128 is_resize_needed()
const
129 {
return m_resize_needed; }
134 is_grow_needed(size_type , size_type )
const
135 {
return m_num_col >= m_max_col; }
140 notify_resized(size_type new_size)
144 #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
146 <<
static_cast<unsigned long>(new_size) <<
std::endl;
150 calc_resize_needed();
160 const double ln_arg = 2 * m_size *
std::log(
double(m_size));
163 #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
164 std::cerr <<
"chmccrt::calc_max_num_coll "
165 <<
static_cast<unsigned long>(m_size) <<
" "
166 <<
static_cast<unsigned long>(m_max_col) <<
std::endl;
173 notify_externally_resized(size_type new_size)
174 { notify_resized(new_size); }
179 swap(PB_DS_CLASS_C_DEC& other)
181 std::swap(m_load, other.m_load);
182 std::swap(m_size, other.m_size);
183 std::swap(m_num_col, other.m_num_col);
184 std::swap(m_max_col, other.m_max_col);
185 std::swap(m_resize_needed, other.m_resize_needed);
193 PB_DS_STATIC_ASSERT(access, external_load_access);
201 { m_resize_needed = m_resize_needed || m_num_col >= m_max_col; }
208 PB_DS_STATIC_ASSERT(access, external_load_access);
211 calc_resize_needed();
complex< _Tp > log(const complex< _Tp > &)
Return complex natural logarithm of z.
complex< _Tp > sqrt(const complex< _Tp > &)
Return complex square root of z.
ostream cerr
Linked to standard output.
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.