📄 cc_ht_map_.hpp
字号:
~PB_ASSOC_CLASS_NAME(); void swap(PB_ASSOC_CLASS_C_DEC& r_other); template<class It> void copy_from_range(It first_it, It last_it); inline size_type size() const; inline size_type max_size() const; inline bool empty() const; Hash_Fn& get_hash_fn(); const Hash_Fn& get_hash_fn() const; Eq_Fn& get_eq_fn(); const Eq_Fn& get_eq_fn() const; Comb_Hash_Fn& get_comb_hash_fn(); const Comb_Hash_Fn& get_comb_hash_fn() const; Resize_Policy& get_resize_policy(); const Resize_Policy& get_resize_policy() const; inline std::pair<find_iterator, bool> insert(const_reference r_val); inline data_reference subscript_imp(const_key_reference r_key); inline find_iterator find(const_key_reference r_key); inline const_find_iterator find(const_key_reference r_key) const; inline find_iterator find_end(); inline const_find_iterator find_end() const; template<class T> inline size_type erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<false>); template<class T> inline size_type erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<true>); template<class Pred> inline size_type erase_if(Pred& r_pred); void clear(); inline iterator begin(); inline const_iterator begin() const; inline iterator end(); inline const_iterator end() const;#ifdef PB_ASSOC_CC_HT_MAP_DEBUG virtual void assert_valid() const;#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG virtual void do_resize(size_type new_size); private: typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base; typedef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC my_hash_traits_base; typedef PB_ASSOC_RANGED_HASH_FN_C_DEC my_ranged_hash_fn_base; typedef PB_ASSOC_HASH_EQ_FN_C_DEC my_hash_eq_fn_base; typedef Resize_Policy my_resize_base;#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE private: inline bool do_resize_if_needed(); inline void do_resize_if_needed_no_throw(); void resize_imp_no_exceptions(size_type new_size, entry_pointer_array a_p_entries_resized, size_type old_size); inline entry_pointer resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<false>); inline entry_pointer resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<true>); template<class For_Each_Fn> void do_for_each(For_Each_Fn fn); void deallocate_links_in_list(entry_pointer p_e); inline entry_pointer get_entry(const_reference r_val, int_to_type<false>); inline entry_pointer get_entry(const_reference r_val, int_to_type<true>); inline void rels_entry(entry_pointer p_e); void constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<false>); void constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<true>); void deallocate_all(); inline data_reference subscript_imp(const_key_reference r_key, int_to_type<false>); inline data_reference subscript_imp(const_key_reference r_key, int_to_type<true>); inline std::pair<find_iterator, bool> insert_imp(const_reference r_val, int_to_type<false>); inline std::pair<find_iterator, bool> insert_imp(const_reference r_val, int_to_type<true>); inline pointer insert_new_imp(const_reference r_val, size_type pos); inline pointer insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair); inline const_data_reference const_subscript_imp(const_key_reference r_key, int_to_type<false>) const; inline const_data_reference const_subscript_imp(const_key_reference r_key, int_to_type<true>) const; inline pointer find_key_pointer(const_key_reference r_key, int_to_type<false>); inline pointer find_key_pointer(const_key_reference r_key, int_to_type<true>); template<class T> inline size_type erase_in_pos_imp(T r_t, bool erase_entry_if_last, size_type pos); template<class T> inline size_type erase_in_pos_imp(T r_t, bool erase_entry_if_last, const comp_hash& r_pos_hash_pair); inline void erase_entry_pointer(entry_pointer& r_p_e);#ifdef PB_ASSOC_DATA_TRUE_INDICATOR void inc_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR void inc_it_state(const_pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const; void get_start_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;#ifdef PB_ASSOC_CC_HT_MAP_DEBUG void assert_entry_pointer_array_valid(const entry_pointer_array a_p_entries) const; void assert_entry_pointer_valid(const entry_pointer p_e, store_hash_true_indicator) const; void assert_entry_pointer_valid(const entry_pointer p_e, store_hash_false_indicator) const;#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG private: static entry_allocator s_entry_allocator; static entry_pointer_allocator s_entry_pointer_allocator; typedef pb_assoc::detail::cond_dealtor< entry, Allocator> cond_dealtor_t; entry_pointer_array m_a_p_entries; size_type m_num_e_p; size_type m_num_used_e; friend class iterator_; friend class const_iterator_; static iterator s_end_it; static const_iterator s_const_end_it; static find_iterator s_find_end_it; static const_find_iterator s_const_find_end_it; enum { store_hash_ok = !Store_Hash || !pb_assoc::detail::is_same_type< Hash_Fn, pb_assoc::null_hash_fn>::value }; PB_ASSOC_STATIC_ASSERT(sth, store_hash_ok); };#include <ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp>#include <ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_HASH_EQ_FN_C_DEC#undef PB_ASSOC_RANGED_HASH_FN_C_DEC#undef PB_ASSOC_TYPES_TRAITS_C_DEC#undef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC#undef PB_ASSOC_CLASS_NAME#undef PB_ASSOC_V2F#undef PB_ASSOC_V2S#undef PB_ASSOC_DBG_ASSERT#undef PB_ASSOC_DBG_VERIFY#undef PB_ASSOC_DBG_ONLY#undef PB_ASSOC_STATIC_ASSERT } // namespace detail} // namespace pb_assoc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -