Ordered-vector tree associative-container. More...
#include <ov_tree_map_.hpp>
Classes | |
class | cond_dtor |
Conditional destructor. More... | |
Public Types | |
typedef _Alloc | allocator_type |
typedef Cmp_Fn | cmp_fn |
typedef std::pair< size_type, size_type > | comp_hash |
typedef point_const_iterator | const_iterator |
typedef traits_base::const_pointer | const_pointer |
typedef traits_base::const_reference | const_reference |
typedef ov_tree_tag | container_category |
typedef _Alloc::difference_type | difference_type |
typedef point_iterator | iterator |
typedef traits_base::key_const_pointer | key_const_pointer |
typedef traits_base::key_const_reference | key_const_reference |
typedef traits_base::key_pointer | key_pointer |
typedef traits_base::key_reference | key_reference |
typedef traits_base::key_type | key_type |
typedef traits_base::mapped_const_pointer | mapped_const_pointer |
typedef traits_base::mapped_const_reference | mapped_const_reference |
typedef traits_base::mapped_pointer | mapped_pointer |
typedef traits_base::mapped_reference | mapped_reference |
typedef traits_base::mapped_type | mapped_type |
typedef __nothrowcopy::indicator | no_throw_indicator |
typedef traits_type::node_const_iterator | node_const_iterator |
typedef traits_type::node_iterator | node_iterator |
typedef traits_type::node_update | node_update |
typedef const_pointer | point_const_iterator |
typedef point_const_iterator | point_iterator |
typedef traits_base::pointer | pointer |
typedef traits_base::reference | reference |
typedef _Alloc::size_type | size_type |
typedef integral_constant< int, Store_Hash > | store_extra |
typedef traits_base::value_type | value_type |
Public Member Functions | |
PB_DS_OV_TREE_NAME () | |
PB_DS_OV_TREE_NAME (const Cmp_Fn &) | |
PB_DS_OV_TREE_NAME (const Cmp_Fn &, const node_update &) | |
PB_DS_OV_TREE_NAME (const PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > &) | |
~PB_DS_OV_TREE_NAME () | |
iterator | begin () |
const_iterator | begin () const |
void | clear () |
template<typename It > | |
void | copy_from_range (It, It) |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
bool | erase (key_const_reference) |
iterator | erase (iterator it) |
template<typename Pred > | |
size_type | erase_if (Pred) |
point_iterator | find (key_const_reference r_key) |
point_const_iterator | find (key_const_reference r_key) const |
Cmp_Fn & | get_cmp_fn () |
const Cmp_Fn & | get_cmp_fn () const |
std::pair< point_iterator, bool > | insert (const_reference r_value) |
void | join (PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > &) |
point_iterator | lower_bound (key_const_reference r_key) |
point_const_iterator | lower_bound (key_const_reference r_key) const |
size_type | max_size () const |
node_const_iterator | node_begin () const |
Returns a const node_iterator corresponding to the node at the root of the tree. More... | |
node_iterator | node_begin () |
Returns a node_iterator corresponding to the node at the root of the tree. More... | |
node_const_iterator | node_end () const |
Returns a const node_iterator corresponding to a node just after a leaf of the tree. More... | |
node_iterator | node_end () |
Returns a node_iterator corresponding to a node just after a leaf of the tree. More... | |
mapped_reference | operator[] (key_const_reference r_key) |
size_type | size () const |
void | split (key_const_reference, PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > &) |
void | swap (PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > &) |
point_iterator | upper_bound (key_const_reference r_key) |
point_const_iterator | upper_bound (key_const_reference r_key) const |
Public Attributes | |
no_throw_indicator | m_no_throw_copies_indicator |
store_extra | m_store_extra_indicator |
Private Types | |
typedef traits_base::const_pointer | mapped_const_pointer_ |
typedef traits_base::pointer | mapped_pointer_ |
typedef _Alloc::template rebind< metadata_type >::other | metadata_allocator |
typedef metadata_allocator::const_reference | metadata_const_reference |
typedef metadata_allocator::pointer | metadata_pointer |
typedef metadata_allocator::reference | metadata_reference |
typedef traits_type::metadata_type | metadata_type |
typedef remove_const< typename traits_base::value_type >::type | non_const_value_type |
typedef traits_type::null_node_update_pointer | null_node_update_pointer |
typedef types_traits< Key, Mapped, _Alloc, false > | traits_base |
typedef Node_And_It_Traits | traits_type |
typedef _Alloc::template rebind< non_const_value_type >::other | value_allocator |
typedef value_allocator::pointer | value_vector |
Private Member Functions | |
template<typename It > | |
void | copy_from_ordered_range (It, It) |
template<typename It > | |
void | copy_from_ordered_range (It, It, It, It) |
template<typename It > | |
It | erase_imp (It) |
iterator | insert_new_val (iterator it, const_reference r_value) |
node_const_iterator | PB_DS_node_begin_imp () const |
node_iterator | PB_DS_node_begin_imp () |
node_const_iterator | PB_DS_node_end_imp () const |
node_iterator | PB_DS_node_end_imp () |
void | reallocate_metadata (null_node_update_pointer, size_type) |
template<typename Node_Update_ > | |
void | reallocate_metadata (Node_Update_ *, size_type) |
void | update (node_iterator, null_node_update_pointer) |
template<typename Node_Update > | |
void | update (node_iterator, Node_Update *) |
void | value_swap (PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > &) |
Static Private Member Functions | |
template<typename Ptr > | |
static Ptr | mid_pointer (Ptr p_begin, Ptr p_end) |
Private Attributes | |
metadata_pointer | m_a_metadata |
value_vector | m_a_values |
iterator | m_end_it |
size_type | m_size |
Static Private Attributes | |
static metadata_allocator | s_metadata_alloc |
static value_allocator | s_value_alloc |
Ordered-vector tree associative-container.
typedef _Alloc __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::allocator_type |
typedef Cmp_Fn __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::cmp_fn |
|
inherited |
typedef point_const_iterator __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::const_iterator |
typedef traits_base::const_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::const_pointer |
typedef traits_base::const_reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::const_reference |
typedef ov_tree_tag __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::container_category |
typedef _Alloc::difference_type __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::difference_type |
typedef point_iterator __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::iterator |
typedef traits_base::key_const_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::key_const_pointer |
typedef traits_base::key_const_reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::key_const_reference |
typedef traits_base::key_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::key_pointer |
typedef traits_base::key_reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::key_reference |
typedef traits_base::key_type __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::key_type |
typedef traits_base::mapped_const_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::mapped_const_pointer |
|
private |
typedef traits_base::mapped_const_reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::mapped_const_reference |
typedef traits_base::mapped_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::mapped_pointer |
|
private |
typedef traits_base::mapped_reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::mapped_reference |
typedef traits_base::mapped_type __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::mapped_type |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inherited |
typedef traits_type::node_const_iterator __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::node_const_iterator |
typedef traits_type::node_iterator __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::node_iterator |
typedef traits_type::node_update __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::node_update |
|
private |
|
private |
typedef const_pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::point_const_iterator |
typedef point_const_iterator __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::point_iterator |
typedef traits_base::pointer __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::pointer |
typedef traits_base::reference __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::reference |
typedef _Alloc::size_type __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::size_type |
|
inherited |
|
private |
|
private |
|
private |
typedef traits_base::value_type __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::value_type |
|
private |
__gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::PB_DS_OV_TREE_NAME | ( | ) |
__gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::PB_DS_OV_TREE_NAME | ( | const Cmp_Fn & | ) |
__gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::PB_DS_OV_TREE_NAME | ( | const Cmp_Fn & | , |
const node_update & | |||
) |
__gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::PB_DS_OV_TREE_NAME | ( | const PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > & | ) |
__gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::~PB_DS_OV_TREE_NAME | ( | ) |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_a_values.
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val().
|
inline |
void __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::clear | ( | ) |
|
private |
|
private |
void __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::copy_from_range | ( | It | , |
It | |||
) |
|
inline |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_end_it.
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::find(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::operator[](), and __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::upper_bound().
|
inline |
bool __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::erase | ( | key_const_reference | ) |
|
inline |
|
inline |
|
private |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::end(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::lower_bound(), PB_DS_ASSERT_VALID, PB_DS_CHECK_KEY_DOES_NOT_EXIST, PB_DS_CHECK_KEY_EXISTS, and PB_DS_V2F.
|
inline |
Cmp_Fn& __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::get_cmp_fn | ( | ) |
const Cmp_Fn& __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::get_cmp_fn | ( | ) | const |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::end(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::lower_bound(), PB_DS_ASSERT_VALID, PB_DS_CHECK_KEY_EXISTS, and PB_DS_V2F.
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::operator[]().
|
inlineprivate |
References _GLIBCXX_DEBUG_ONLY, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::begin(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::end(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_a_values, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_end_it, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_size, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::node_begin(), PB_DS_ASSERT_VALID, PB_DS_CHECK_KEY_DOES_NOT_EXIST, PB_DS_V2F, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::reallocate_metadata(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::s_value_alloc, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::cond_dtor< Size_Type >::set_no_action(), and __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::update().
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert(), and __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::operator[]().
void __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::join | ( | PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > & | ) |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_a_values, __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::m_size, and PB_DS_V2F.
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::find(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::operator[](), and __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::upper_bound().
|
inline |
References PB_DS_CLASS_C_DEC.
|
inline |
|
inlinestaticprivate |
References _GLIBCXX_DEBUG_ASSERT.
|
inline |
Returns a const node_iterator corresponding to the node at the root of the tree.
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val().
|
inline |
Returns a node_iterator corresponding to the node at the root of the tree.
|
inline |
Returns a const node_iterator corresponding to a node just after a leaf of the tree.
|
inline |
Returns a node_iterator corresponding to a node just after a leaf of the tree.
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::end(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::lower_bound(), PB_DS_ASSERT_VALID, PB_DS_CHECK_KEY_EXISTS, and PB_DS_V2F.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val().
|
private |
|
inline |
void __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::split | ( | key_const_reference | , |
PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > & | |||
) |
void __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::swap | ( | PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc > & | ) |
|
inlineprivate |
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val().
|
private |
|
inline |
References __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::end(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::lower_bound(), PB_DS_CHECK_KEY_DOES_NOT_EXIST, PB_DS_CHECK_KEY_EXISTS, and PB_DS_V2F.
|
inline |
References PB_DS_CLASS_C_DEC.
|
private |
|
private |
|
private |
Referenced by __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::begin(), __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::insert_new_val(), and __gnu_pbds::detail::PB_DS_OV_TREE_NAME< Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc >::lower_bound().
|
private |
|
inherited |
|
private |
|
inherited |
|
staticprivate |
|
staticprivate |