📄 assoc_cntnr.hpp
字号:
void swap(PB_ASSOC_CLASS_C_DEC& r_other); comb_probe_fn& get_comb_probe_fn(); const comb_probe_fn& get_comb_probe_fn() const; probe_fn& get_probe_fn(); const probe_fn& get_probe_fn() const; private: typedef PB_ASSOC_BASE_C_DEC my_base; };#include <ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_BASE_C_DEC#define PB_ASSOC_CLASS_T_DEC \ template< \ typename Key, \ typename Data, \ class Cmp_Fn, \ class DS_Tag, \ class Node_Updator, \ class Allocator>#define PB_ASSOC_CLASS_C_DEC \ basic_tree_assoc_cntnr< \ Key, \ Data, \ Cmp_Fn, \ DS_Tag, \ Node_Updator, \ Allocator>#define PB_ASSOC_BASE_C_DEC \ basic_assoc_cntnr< \ Key, \ Data, \ DS_Tag, \ pb_assoc::detail::typelist< \ PB_ASSOC_TYPELIST_CHAIN2( Cmp_Fn, Node_Updator) >, \ Allocator> template<typename Key, typename Data, class Cmp_Fn, class DS_Tag, class Node_Updator, class Allocator> class basic_tree_assoc_cntnr : public PB_ASSOC_BASE_C_DEC { public: typedef typename Allocator::size_type size_type; typedef typename Allocator::template rebind< Key>::other::const_reference const_key_reference; typedef Cmp_Fn cmp_fn; typedef Node_Updator node_updator; typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator; typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator; typedef typename PB_ASSOC_BASE_C_DEC::const_reverse_iterator const_reverse_iterator; typedef typename PB_ASSOC_BASE_C_DEC::reverse_iterator reverse_iterator; typedef typename PB_ASSOC_BASE_C_DEC::const_node_iterator const_node_iterator; typedef typename PB_ASSOC_BASE_C_DEC::node_iterator node_iterator; virtual ~basic_tree_assoc_cntnr(); cmp_fn& get_cmp_fn(); const cmp_fn& get_cmp_fn() const; node_updator& get_node_updator(); const node_updator& get_node_updator() const; inline size_type erase(const_key_reference r_key); inline iterator erase(iterator it); inline reverse_iterator erase(reverse_iterator it) { return (my_base::erase(it)); } inline reverse_iterator rbegin() { return (my_base::rbegin()); } inline const_reverse_iterator rbegin() const { return (my_base::rbegin()); } inline reverse_iterator rend() { return (my_base::rend()); } inline const_reverse_iterator rend() const { return (my_base::rend()); } inline node_iterator node_begin() { return (my_base::node_begin()); } inline const_node_iterator node_begin() const { return (my_base::node_begin()); } inline node_iterator node_end() { return (my_base::node_end()); } inline const_node_iterator node_end() const { return (my_base::node_end()); } void join(PB_ASSOC_CLASS_C_DEC& r_other); inline void split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other); protected:#define PB_ASSOC_CLASS_NAME basic_tree_assoc_cntnr#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \ PB_ASSOC_DIRECT_BASE_C_DEC#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC#undef PB_ASSOC_CLASS_NAME#undef PB_ASSOC_DIRECT_BASE_C_DEC private: typedef PB_ASSOC_BASE_C_DEC my_base; };#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_BASE_C_DEC#define PB_ASSOC_CLASS_T_DEC \ template< \ typename Key, \ typename Data, \ class Cmp_Fn, \ class Node_Updator, \ class Allocator>#define PB_ASSOC_CLASS_C_DEC \ basic_tree_assoc_cntnr< \ Key, \ Data, \ Cmp_Fn, \ ov_tree_ds_tag, \ Node_Updator, \ Allocator>#define PB_ASSOC_BASE_C_DEC \ basic_assoc_cntnr< \ Key, \ Data, \ ov_tree_ds_tag, \ pb_assoc::detail::typelist< \ PB_ASSOC_TYPELIST_CHAIN2( Cmp_Fn, Node_Updator) >, \ Allocator> template<typename Key, typename Data, typename Cmp_Fn, typename Node_Updator, typename Allocator> class basic_tree_assoc_cntnr<Key, Data, Cmp_Fn, ov_tree_ds_tag, Node_Updator, Allocator> : public PB_ASSOC_BASE_C_DEC { public: typedef typename Allocator::size_type size_type; typedef typename Allocator::template rebind< Key>::other::const_reference const_key_reference; typedef Cmp_Fn cmp_fn; typedef Node_Updator node_updator; typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator; typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator; typedef typename PB_ASSOC_BASE_C_DEC::const_node_iterator const_node_iterator; typedef typename PB_ASSOC_BASE_C_DEC::node_iterator node_iterator; virtual ~basic_tree_assoc_cntnr(); cmp_fn& get_cmp_fn(); const cmp_fn& get_cmp_fn() const; node_updator& get_node_updator(); const node_updator& get_node_updator() const; inline size_type erase(const_key_reference r_key); inline iterator erase(iterator it); inline node_iterator node_begin() { return (my_base::node_begin()); } inline const_node_iterator node_begin() const { return (my_base::node_begin()); } inline node_iterator node_end() { return (my_base::node_end()); } inline const_node_iterator node_end() const { return (my_base::node_end()); } void join(PB_ASSOC_CLASS_C_DEC& r_other); inline void split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other); protected:#define PB_ASSOC_CLASS_NAME basic_tree_assoc_cntnr#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \ PB_ASSOC_DIRECT_BASE_C_DEC#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC#undef PB_ASSOC_CLASS_NAME#undef PB_ASSOC_DIRECT_BASE_C_DEC private: typedef PB_ASSOC_BASE_C_DEC my_base; };#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp>#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_BASE_C_DEC#define PB_ASSOC_CLASS_T_DEC \ template< \ typename Key, \ typename Data, \ class Cmp_Fn, \ class DS_Tag, \ class Node_Updator, \ class Allocator>#define PB_ASSOC_CLASS_C_DEC \ tree_assoc_cntnr< \ Key, \ Data, \ Cmp_Fn, \ DS_Tag, \ Node_Updator, \ Allocator>#define PB_ASSOC_BASE_C_DEC \ basic_tree_assoc_cntnr< \ Key, \ Data, \ Cmp_Fn, \ DS_Tag, \ Node_Updator, \ Allocator> template<typename Key, typename Data, class Cmp_Fn = std::less<Key>, typename DS_Tag = rb_tree_ds_tag, typename Node_Updator = pb_assoc::detail::def_node_updator, typename Allocator = std::allocator<char> > class tree_assoc_cntnr : public PB_ASSOC_BASE_C_DEC { typedef Cmp_Fn cmp_fn; typedef Node_Updator node_updator; public: tree_assoc_cntnr(); tree_assoc_cntnr(const cmp_fn& r_cmp_fn); tree_assoc_cntnr(const cmp_fn& r_cmp_fn, const Node_Updator&r); template<typename It> tree_assoc_cntnr(It first_it, It last_it); template<typename It> tree_assoc_cntnr(It first_it, It last_it, const cmp_fn& r_cmp_fn); template<typename It> tree_assoc_cntnr(It, It, const cmp_fn&, const Node_Updator&); tree_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other); virtual ~tree_assoc_cntnr(); PB_ASSOC_CLASS_C_DEC& operator=(const PB_ASSOC_CLASS_C_DEC& r_other); void swap(PB_ASSOC_CLASS_C_DEC& r_other); private: typedef PB_ASSOC_BASE_C_DEC my_base; };#include <ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_BASE_C_DEC#define PB_ASSOC_CLASS_T_DEC \ template< \ typename Key, \ typename Data, \ class Eq_Fn, \ class Update_Policy, \ class Allocator>#define PB_ASSOC_CLASS_C_DEC \ lu_assoc_cntnr< \ Key, \ Data, \ Eq_Fn, \ Update_Policy, \ Allocator>#define PB_ASSOC_BASE_C_DEC \ basic_assoc_cntnr< \ Key, \ Data, \ lu_ds_tag, \ pb_assoc::detail::typelist< \ PB_ASSOC_TYPELIST_CHAIN2( Eq_Fn, Update_Policy) >, \ Allocator> template<typename Key, typename Data, typename Eq_Fn = typename pb_assoc::detail::def_eq_fn<Key>::type, typename Update_Policy = pb_assoc::detail::def_update_policy::type, typename Allocator = std::allocator<char> > class lu_assoc_cntnr : public PB_ASSOC_BASE_C_DEC { public: typedef Eq_Fn eq_fn; typedef Allocator allocator; typedef Update_Policy update_policy; lu_assoc_cntnr(); lu_assoc_cntnr(const Eq_Fn& r_eq_fn); lu_assoc_cntnr(const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy); template<typename It> lu_assoc_cntnr(It first_it, It last_it); template<typename It> lu_assoc_cntnr(It first_it, It last_it, const Eq_Fn& r_eq_fn); template<typename It> lu_assoc_cntnr(It, It, const Eq_Fn&, const Update_Policy&); lu_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other); virtual ~lu_assoc_cntnr(); PB_ASSOC_CLASS_C_DEC& operator=(const PB_ASSOC_CLASS_C_DEC& r_other); void swap(PB_ASSOC_CLASS_C_DEC& r_other); eq_fn& get_eq_fn(); const eq_fn& get_eq_fn() const; update_policy& get_update_policy(); const update_policy& get_update_policy() const; private: typedef PB_ASSOC_BASE_C_DEC my_base; };#include <ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp>#include <ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp>#undef PB_ASSOC_CLASS_T_DEC#undef PB_ASSOC_CLASS_C_DEC#undef PB_ASSOC_BASE_C_DEC#undef PB_ASSOC_TYPELIST_CHAIN1#undef PB_ASSOC_TYPELIST_CHAIN2#undef PB_ASSOC_TYPELIST_CHAIN3#undef PB_ASSOC_TYPELIST_CHAIN4#undef PB_ASSOC_TYPELIST_CHAIN5#undef PB_ASSOC_TYPELIST_CHAIN6#undef PB_ASSOC_TYPELIST_CHAIN7#undef PB_ASSOC_TYPELIST_CHAIN8#undef PB_ASSOC_TYPELIST_CHAIN9#undef PB_ASSOC_TYPELIST_CHAIN10#undef PB_ASSOC_TYPELIST_CHAIN11#undef PB_ASSOC_TYPELIST_CHAIN12#undef PB_ASSOC_TYPELIST_CHAIN13#undef PB_ASSOC_TYPELIST_CHAIN14#undef PB_ASSOC_TYPELIST_CHAIN15} // namespace pb_assoc#endif // #ifndef ASSOC_CNTNR_HPP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -