46 assert_valid(
bool strictly_binomial,
const char* __file,
int __line)
const
48 base_type::assert_valid(__file, __line);
49 assert_node_consistent(base_type::m_p_root, strictly_binomial,
true,
51 assert_max(__file, __line);
57 assert_max(
const char* __file,
int __line)
const
61 PB_DS_DEBUG_VERIFY(base_type::parent(m_p_max) == 0);
63 PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(m_p_max->m_value,
70 assert_node_consistent(node_const_pointer p_nd,
bool strictly_binomial,
71 bool increasing,
const char* __file,
int __line)
const
73 PB_DS_DEBUG_VERIFY(increasing || strictly_binomial);
74 base_type::assert_node_consistent(p_nd,
false, __file, __line);
77 PB_DS_DEBUG_VERIFY(p_nd->m_metadata == base_type::degree(p_nd));
78 PB_DS_DEBUG_VERIFY(base_type::size_under_node(p_nd) ==
79 static_cast<size_type>(1 << p_nd->m_metadata));
80 assert_node_consistent(p_nd->m_p_next_sibling, strictly_binomial, increasing,
82 assert_node_consistent(p_nd->m_p_l_child,
true,
false, __file, __line);
83 if (p_nd->m_p_next_sibling != 0)
87 if (strictly_binomial)
88 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
89 < p_nd->m_p_next_sibling->m_metadata);
91 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
92 <= p_nd->m_p_next_sibling->m_metadata);
95 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
96 > p_nd->m_p_next_sibling->m_metadata);
auto end(_Container &__cont) -> decltype(__cont.end())
Return an iterator pointing to one past the last element of the container.
auto begin(_Container &__cont) -> decltype(__cont.begin())
Return an iterator pointing to the first element of the container.