|
Public Types |
typedef Key | key_type |
typedef Val | value_type |
typedef value_type * | pointer |
typedef const value_type * | const_pointer |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef Rb_tree_node * | Link_type |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef Base::allocator_type | allocator_type |
typedef Rb_tree_iterator<
value_type, reference, pointer > | iterator |
typedef Rb_tree_iterator<
value_type, const_reference,
const_pointer > | const_iterator |
typedef std::reverse_iterator<
const_iterator > | const_reverse_iterator |
typedef std::reverse_iterator<
iterator > | reverse_iterator |
Public Member Functions |
allocator_type | get_allocator () const |
| Rb_tree () |
| Rb_tree (const Compare &comp) |
| Rb_tree (const Compare &comp, const allocator_type &a) |
| Rb_tree (const Rb_tree< Key, Val, KeyOfValue, Compare, Alloc > &x) |
| ~Rb_tree () |
Rb_tree< Key, Val, KeyOfValue,
Compare, Alloc > & | operator= (const Rb_tree< Key, Val, KeyOfValue, Compare, Alloc > &x) |
Compare | key_comp () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
bool | empty () const |
size_type | size () const |
size_type | max_size () const |
void | swap (Rb_tree< Key, Val, KeyOfValue, Compare, Alloc > &__t) |
pair< iterator, bool > | insert_unique (const value_type &x) |
iterator | insert_equal (const value_type &x) |
iterator | insert_unique (iterator position, const value_type &x) |
iterator | insert_equal (iterator position, const value_type &x) |
template<typename InputIterator> |
void | insert_unique (InputIterator first, InputIterator last) |
template<typename InputIterator> |
void | insert_equal (InputIterator first, InputIterator last) |
void | erase (iterator position) |
size_type | erase (const key_type &x) |
void | erase (iterator first, iterator last) |
void | erase (const key_type *first, const key_type *last) |
void | clear () |
iterator | find (const key_type &x) |
const_iterator | find (const key_type &x) const |
size_type | count (const key_type &x) const |
iterator | lower_bound (const key_type &x) |
const_iterator | lower_bound (const key_type &x) const |
iterator | upper_bound (const key_type &x) |
const_iterator | upper_bound (const key_type &x) const |
pair< iterator, iterator > | equal_range (const key_type &x) |
pair< const_iterator, const_iterator > | equal_range (const key_type &x) const |
bool | __rb_verify () const |
Protected Types |
typedef Rb_tree_node_base * | Base_ptr |
typedef Rb_tree_node< Val > | Rb_tree_node |
Protected Member Functions |
Link_type | M_create_node (const value_type &x) |
Link_type | M_clone_node (Link_type x) |
void | destroy_node (Link_type __p) |
Link_type & | M_root () const |
Link_type & | M_leftmost () const |
Link_type & | M_rightmost () const |
Rb_tree_node< Val > * | M_get_node () |
void | M_put_node (Rb_tree_node< Val > *__p) |
Static Protected Member Functions |
static Link_type & | S_left (Link_type x) |
static Link_type & | S_right (Link_type x) |
static Link_type & | S_parent (Link_type x) |
static reference | S_value (Link_type x) |
static const Key & | S_key (Link_type x) |
static Rb_tree_color & | S_color (Link_type x) |
static Link_type & | S_left (Base_ptr x) |
static Link_type & | S_right (Base_ptr x) |
static Link_type & | S_parent (Base_ptr x) |
static reference | S_value (Base_ptr x) |
static const Key & | S_key (Base_ptr x) |
static Rb_tree_color & | S_color (Base_ptr x) |
static Link_type | S_minimum (Link_type x) |
static Link_type | S_maximum (Link_type x) |
Protected Attributes |
size_type | M_node_count |
Compare | M_key_compare |
Alloc_traits< Rb_tree_node<
Val >, Alloc >::allocator_type | M_node_allocator |
Rb_tree_node< Val > * | M_header |
Private Types |
typedef Rb_tree_base< Val,
Alloc > | Base |
Private Member Functions |
iterator | M_insert (Base_ptr x, Base_ptr y, const value_type &__v) |
Link_type | M_copy (Link_type x, Link_type __p) |
void | M_erase (Link_type x) |
void | M_empty_initialize () |