57 #define PB_DS_CLASS_T_DEC \
58 template<typename Value_Type, typename Cmp_Fn, typename _Alloc>
60 #define PB_DS_CLASS_C_DEC \
61 pairing_heap<Value_Type, Cmp_Fn, _Alloc>
64 #define PB_DS_P_HEAP_BASE \
65 left_child_next_sibling_heap<Value_Type, Cmp_Fn, null_type, _Alloc, false>
67 #define PB_DS_P_HEAP_BASE \
68 left_child_next_sibling_heap<Value_Type, Cmp_Fn, null_type, _Alloc>
76 template<
typename Value_Type,
typename Cmp_Fn,
typename _Alloc>
81 typedef typename base_type::node_pointer node_pointer;
83 typedef typename _Alloc::template rebind<Value_Type>::other __rebind_a;
86 typedef Value_Type value_type;
87 typedef Cmp_Fn cmp_fn;
88 typedef _Alloc allocator_type;
89 typedef typename _Alloc::size_type size_type;
90 typedef typename _Alloc::difference_type difference_type;
92 typedef typename __rebind_a::pointer pointer;
93 typedef typename __rebind_a::const_pointer const_pointer;
94 typedef typename __rebind_a::reference reference;
95 typedef typename __rebind_a::const_reference const_reference;
113 inline point_iterator
114 push(const_reference);
117 modify(point_iterator, const_reference);
119 inline const_reference
126 erase(point_iterator);
128 template<
typename Pred>
132 template<
typename Pred>
141 template<
typename It>
143 copy_from_range(It, It);
145 #ifdef _GLIBCXX_DEBUG
147 assert_valid(
const char*,
int)
const;
153 push_imp(node_pointer);
156 join_node_children(node_pointer);
159 forward_join(node_pointer, node_pointer);
162 back_join(node_pointer, node_pointer);
165 remove_node(node_pointer);
168 #define PB_DS_ASSERT_NODE_CONSISTENT(_Node, _Bool) \
169 _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(_Node, _Bool, \
170 __FILE__, __LINE__);)
179 #undef PB_DS_ASSERT_NODE_CONSISTENT
180 #undef PB_DS_CLASS_C_DEC
181 #undef PB_DS_CLASS_T_DEC
182 #undef PB_DS_P_HEAP_BASE
GNU extensions for policy-based data structures for public use.
Const point-type iterator.
Const point-type iterator.