41 #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_HPP
42 #define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_HPP
54 #ifdef PB_DS_LC_NS_HEAP_TRACE_
64 #define PB_DS_CLASS_T_DEC \
65 template<typename Value_Type, typename Cmp_Fn, typename Node_Metadata, \
66 typename _Alloc, bool Single_Link_Roots>
68 #define PB_DS_CLASS_C_DEC \
69 left_child_next_sibling_heap<Value_Type, Cmp_Fn, Node_Metadata, \
70 _Alloc, Single_Link_Roots>
72 #define PB_DS_CLASS_T_DEC \
73 template<typename Value_Type, typename Cmp_Fn, typename Node_Metadata, \
76 #define PB_DS_CLASS_C_DEC \
77 left_child_next_sibling_heap<Value_Type, Cmp_Fn, Node_Metadata, _Alloc>
81 template<
typename Value_Type,
83 typename Node_Metadata,
86 ,
bool Single_Link_Roots>
94 typename _Alloc::template rebind<
99 typedef typename node_allocator::value_type
node;
114 typedef typename _Alloc::template rebind<Value_Type>
__rebind_v;
121 typedef typename __rebind_v::other::pointer
pointer;
123 typedef typename __rebind_v::other::reference
reference;
177 #ifdef PB_DS_LC_NS_HEAP_TRACE_
210 template<
typename Pred>
214 #ifdef _GLIBCXX_DEBUG
216 assert_valid(
const char*,
int)
const;
228 #ifdef PB_DS_LC_NS_HEAP_TRACE_
234 #ifdef _GLIBCXX_DEBUG
236 assert_iterators(
const char*,
int)
const;
239 assert_size(
const char*,
int)
const;
254 #ifdef PB_DS_LC_NS_HEAP_TRACE_
255 template<
typename Metadata_>
280 #undef PB_DS_CLASS_C_DEC
281 #undef PB_DS_CLASS_T_DEC
_Alloc::template rebind< Value_Type > __rebind_v
Definition: left_child_next_sibling_heap_.hpp:114
Value_Type value_type
Definition: left_child_next_sibling_heap_.hpp:119
node_allocator::const_pointer node_const_pointer
Definition: left_child_next_sibling_heap_.hpp:101
Definition: type_utils.hpp:95
node_allocator::pointer node_pointer
Definition: left_child_next_sibling_heap_.hpp:100
static no_throw_copies_t s_no_throw_copies_ind
Definition: left_child_next_sibling_heap_.hpp:264
size_type max_size() const
cond_dealtor< node, _Alloc > cond_dealtor_t
Definition: left_child_next_sibling_heap_.hpp:106
Node.
Definition: node.hpp:50
Base class for a basic heap.
Definition: left_child_next_sibling_heap_.hpp:90
size_type m_size
Definition: left_child_next_sibling_heap_.hpp:268
Cmp_Fn cmp_fn
Definition: left_child_next_sibling_heap_.hpp:135
void swap_with_parent(node_pointer, node_pointer)
void clear_imp(node_pointer)
_Alloc allocator_type
Definition: left_child_next_sibling_heap_.hpp:136
__rebind_v::other::const_reference const_reference
Definition: left_child_next_sibling_heap_.hpp:124
static void make_child_of(node_pointer, node_pointer)
Definition: left_child_next_sibling_heap_.hpp:110
_Alloc::template rebind< left_child_next_sibling_heap_node_< Value_Type, Node_Metadata, _Alloc > >::other node_allocator
Definition: left_child_next_sibling_heap_.hpp:97
__rebind_v::other::pointer pointer
Definition: left_child_next_sibling_heap_.hpp:121
static node_allocator s_node_allocator
Definition: left_child_next_sibling_heap_.hpp:263
Node_Metadata node_metadata
Definition: left_child_next_sibling_heap_.hpp:102
Const point-type iterator.
Definition: point_const_iterator.hpp:61
__rebind_v::other::reference reference
Definition: left_child_next_sibling_heap_.hpp:123
node_allocator::value_type node
Definition: left_child_next_sibling_heap_.hpp:99
void value_swap(left_child_next_sibling_heap &)
Const point-type iterator.
Definition: const_iterator.hpp:60
_Alloc::size_type size_type
Definition: left_child_next_sibling_heap_.hpp:117
Definition: type_utils.hpp:160
left_child_next_sibling_heap_const_iterator_< node, _Alloc > const_iterator
Definition: left_child_next_sibling_heap_.hpp:132
void swap(PB_DS_CLASS_C_DEC &)
node_pointer get_new_node_for_insert(const_reference)
_Alloc::difference_type difference_type
Definition: left_child_next_sibling_heap_.hpp:118
node_pointer m_p_root
Definition: left_child_next_sibling_heap_.hpp:267
left_child_next_sibling_heap_node_point_const_iterator_< node, _Alloc > point_const_iterator
Definition: left_child_next_sibling_heap_.hpp:127
void actual_erase_node(node_pointer)
std::tr1::integral_constant< int, 1 > true_type
Definition: type_utils.hpp:70
Conditional dey destructor, cc_hash.
Definition: cond_key_dtor_entry_dealtor.hpp:47
~left_child_next_sibling_heap()
__rebind_v::other::const_pointer const_pointer
Definition: left_child_next_sibling_heap_.hpp:122
left_child_next_sibling_heap()
void bubble_to_top(node_pointer)
std::pair< node_pointer, node_pointer > node_pointer_pair
Definition: left_child_next_sibling_heap_.hpp:103
node_pointer recursive_copy_node(node_const_pointer)
const_iterator iterator
Definition: left_child_next_sibling_heap_.hpp:134
static node_pointer parent(node_pointer)
point_const_iterator point_iterator
Definition: left_child_next_sibling_heap_.hpp:129
integral_constant< int, simple_value > no_throw_copies_t
Definition: left_child_next_sibling_heap_.hpp:113
std::tr1::integral_constant< int, 0 > false_type
Definition: type_utils.hpp:71
#define PB_DS_CLASS_C_DEC
Definition: left_child_next_sibling_heap_.hpp:76