Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

__rb_tree_base_iterator Struct Reference

#include <stl_tree.h>

Inheritance diagram for __rb_tree_base_iterator:

Inheritance graph
[legend]
List of all members.

Public Types

typedef __rb_tree_node_base::base_ptr base_ptr
typedef bidirectional_iterator_tag iterator_category
typedef ptrdiff_t difference_type

Public Methods

void increment ()
void decrement ()

Public Attributes

base_ptr node

Member Typedef Documentation

typedef __rb_tree_node_base::base_ptr __rb_tree_base_iterator::base_ptr
 

Definition at line 100 of file stl_tree.h.

Referenced by decrement, and increment.

typedef ptrdiff_t __rb_tree_base_iterator::difference_type
 

Definition at line 102 of file stl_tree.h.

Referenced by distance_type.

typedef bidirectional_iterator_tag __rb_tree_base_iterator::iterator_category
 

Definition at line 101 of file stl_tree.h.


Member Function Documentation

void __rb_tree_base_iterator::decrement   [inline]
 

Definition at line 123 of file stl_tree.h.

References __rb_tree_red, base_ptr, and node.

Referenced by __rb_tree_iterator::operator--.

00124   {
00125     if (node->color == __rb_tree_red &&
00126         node->parent->parent == node)
00127       node = node->right;
00128     else if (node->left != 0) {
00129       base_ptr y = node->left;
00130       while (y->right != 0)
00131         y = y->right;
00132       node = y;
00133     }
00134     else {
00135       base_ptr y = node->parent;
00136       while (node == y->left) {
00137         node = y;
00138         y = y->parent;
00139       }
00140       node = y;
00141     }
00142   }

void __rb_tree_base_iterator::increment   [inline]
 

Definition at line 105 of file stl_tree.h.

References base_ptr, and node.

Referenced by __rb_tree_iterator::operator++.

00106   {
00107     if (node->right != 0) {
00108       node = node->right;
00109       while (node->left != 0)
00110         node = node->left;
00111     }
00112     else {
00113       base_ptr y = node->parent;
00114       while (node == y->right) {
00115         node = y;
00116         y = y->parent;
00117       }
00118       if (node->right != y)
00119         node = y;
00120     }
00121   }


Member Data Documentation

base_ptr __rb_tree_base_iterator::node
 

Definition at line 103 of file stl_tree.h.

Referenced by __rb_tree_iterator::__rb_tree_iterator, rb_tree::__rb_verify, decrement, rb_tree::erase, increment, operator!=, and operator==.


The documentation for this struct was generated from the following file:
logo OpenMask

Documentation generated on Thu May 2 15:03:16 2002

Generated with doxygen 1.2.12 by Dimitri van Heesch ,   1997-2001