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

__bit_iterator Struct Reference

#include <stl_bvector.h>

Inheritance diagram for __bit_iterator:

Inheritance graph
[legend]
Collaboration diagram for __bit_iterator:

Collaboration graph
[legend]
List of all members.

Public Types

typedef __bit_reference reference
typedef __bit_referencepointer
typedef __bit_iterator iterator

Public Methods

void bump_up ()
void bump_down ()
 __bit_iterator ()
 __bit_iterator (unsigned int *x, unsigned int y)
reference operator * () const
iteratoroperator++ ()
iterator operator++ (int)
iteratoroperator-- ()
iterator operator-- (int)
iteratoroperator+= (difference_type i)
iteratoroperator-= (difference_type i)
iterator operator+ (difference_type i) const
iterator operator- (difference_type i) const
difference_type operator- (iterator x) const
reference operator[] (difference_type i)
bool operator== (const iterator &x) const
bool operator!= (const iterator &x) const
bool operator< (iterator x) const

Public Attributes

unsigned int * p
unsigned int offset

Member Typedef Documentation

typedef __bit_iterator __bit_iterator::iterator
 

Definition at line 76 of file stl_bvector.h.

typedef __bit_reference* __bit_iterator::pointer
 

Reimplemented from random_access_iterator< bool, ptrdiff_t >.

Definition at line 75 of file stl_bvector.h.

typedef __bit_reference __bit_iterator::reference
 

Reimplemented from random_access_iterator< bool, ptrdiff_t >.

Definition at line 74 of file stl_bvector.h.

Referenced by operator *.


Constructor & Destructor Documentation

__bit_iterator::__bit_iterator   [inline]
 

Definition at line 93 of file stl_bvector.h.

References offset, and p.

00093 : p(0), offset(0) {}

__bit_iterator::__bit_iterator unsigned int *    x,
unsigned int    y
[inline]
 

Definition at line 94 of file stl_bvector.h.

References offset, and p.

00094 : p(x), offset(y) {}


Member Function Documentation

void __bit_iterator::bump_down   [inline]
 

Definition at line 86 of file stl_bvector.h.

References __WORD_BIT, offset, and p.

Referenced by operator--.

00086                    {
00087     if (offset-- == 0) {
00088       offset = __WORD_BIT - 1;
00089       --p;
00090     }
00091   }

void __bit_iterator::bump_up   [inline]
 

Definition at line 80 of file stl_bvector.h.

References __WORD_BIT, offset, and p.

Referenced by operator++.

00080                  {
00081     if (offset++ == __WORD_BIT - 1) {
00082       offset = 0;
00083       ++p;
00084     }
00085   }

reference __bit_iterator::operator *   const [inline]
 

Definition at line 95 of file stl_bvector.h.

References offset, p, and reference.

00095 { return reference(p, 1U << offset); }

bool __bit_iterator::operator!= const iterator   x const [inline]
 

Definition at line 144 of file stl_bvector.h.

References offset, and p.

00144                                            {
00145     return p != x.p || offset != x.offset;
00146   }

iterator __bit_iterator::operator+ difference_type    i const [inline]
 

Definition at line 129 of file stl_bvector.h.

References random_access_iterator< bool, ptrdiff_t >::difference_type.

00129                                               {
00130     iterator tmp = *this;
00131     return tmp += i;
00132   }

iterator __bit_iterator::operator++ int    [inline]
 

Definition at line 100 of file stl_bvector.h.

References bump_up.

00100                            {
00101     iterator tmp = *this;
00102     bump_up();
00103     return tmp;
00104   }

iterator& __bit_iterator::operator++   [inline]
 

Definition at line 96 of file stl_bvector.h.

References bump_up.

00096                          {
00097     bump_up();
00098     return *this;
00099   }

iterator& __bit_iterator::operator+= difference_type    i [inline]
 

Definition at line 114 of file stl_bvector.h.

References __WORD_BIT, random_access_iterator< bool, ptrdiff_t >::difference_type, offset, and p.

00114                                           {
00115     difference_type n = i + offset;
00116     p += n / __WORD_BIT;
00117     n = n % __WORD_BIT;
00118     if (n < 0) {
00119       offset = (unsigned int) n + __WORD_BIT;
00120       --p;
00121     } else
00122       offset = (unsigned int) n;
00123     return *this;
00124   }

difference_type __bit_iterator::operator- iterator    x const [inline]
 

Definition at line 137 of file stl_bvector.h.

References __WORD_BIT, random_access_iterator< bool, ptrdiff_t >::difference_type, offset, and p.

00137                                               {
00138     return __WORD_BIT * (p - x.p) + offset - x.offset;
00139   }

iterator __bit_iterator::operator- difference_type    i const [inline]
 

Definition at line 133 of file stl_bvector.h.

References random_access_iterator< bool, ptrdiff_t >::difference_type.

00133                                               {
00134     iterator tmp = *this;
00135     return tmp -= i;
00136   }

iterator __bit_iterator::operator-- int    [inline]
 

Definition at line 109 of file stl_bvector.h.

References bump_down.

00109                            {
00110     iterator tmp = *this;
00111     bump_down();
00112     return tmp;
00113   }

iterator& __bit_iterator::operator--   [inline]
 

Definition at line 105 of file stl_bvector.h.

References bump_down.

00105                          {
00106     bump_down();
00107     return *this;
00108   }

iterator& __bit_iterator::operator-= difference_type    i [inline]
 

Definition at line 125 of file stl_bvector.h.

References random_access_iterator< bool, ptrdiff_t >::difference_type.

00125                                           {
00126     *this += -i;
00127     return *this;
00128   }

bool __bit_iterator::operator< iterator    x const [inline]
 

Definition at line 147 of file stl_bvector.h.

References offset, and p.

00147                                    {
00148     return p < x.p || (p == x.p && offset < x.offset);
00149   }

bool __bit_iterator::operator== const iterator   x const [inline]
 

Definition at line 141 of file stl_bvector.h.

References offset, and p.

00141                                            {
00142     return p == x.p && offset == x.offset;
00143   }

reference __bit_iterator::operator[] difference_type    i [inline]
 

Definition at line 140 of file stl_bvector.h.

References random_access_iterator< bool, ptrdiff_t >::difference_type.

00140 { return *(*this + i); }


Member Data Documentation

unsigned int __bit_iterator::offset
 

Definition at line 79 of file stl_bvector.h.

Referenced by __bit_iterator, bump_down, bump_up, operator *, operator!=, operator+=, operator-, operator<, and operator==.

unsigned int* __bit_iterator::p
 

Definition at line 78 of file stl_bvector.h.

Referenced by __bit_iterator, bit_vector::__BVECTOR, bump_down, bump_up, bit_vector::deallocate, bit_vector::insert, bit_vector::insert_aux, operator *, operator!=, operator+=, operator-, operator<, operator==, and bit_vector::push_back.


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

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

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