WordIterator.h

Go to the documentation of this file.
00001 // Copyright (C) 2005 Alexander Ushakov
00002 // Contents: Definition of class WordIterator
00003 //
00004 // Principal Authors: Alexander Ushakov
00005 //
00006 // Revision History:
00007 //
00008 
00009 #ifndef _WordIterator_H_
00010 #define _WordIterator_H_
00011 
00012 
00013 #include "list"
00014 using namespace std;
00015 
00016 class Word;
00017 
00018 //---------------------------------------------------------------------------//
00019 //------------------------------- WordIterator ------------------------------//
00020 //---------------------------------------------------------------------------//
00021 
00022 
00023 class WordIterator
00024 {
00025         friend class ConstWordIterator;
00026         friend class WordRep;
00027         friend class Word;
00028 
00029 public:
00030         typedef pair< int , int > PII;
00031 
00033   //                                                     //
00034   //  Constructors                                       //
00035   //                                                     //
00037 
00038 public:
00039         WordIterator( );
00040         WordIterator( Word& w , bool begin=true );
00041 
00042 private:
00043         WordIterator( list<int>& lst , list< int >::iterator it );
00044 
00046   //                                                     //
00047   //  Operators                                          //
00048   //                                                     //
00050 public:
00051         bool operator!= ( const WordIterator& WI ) const;
00052         bool operator== ( const WordIterator& WI ) const;
00053 
00054         const WordIterator& operator++ ( );
00055               WordIterator  operator++ ( int doomy );
00056         const WordIterator& operator-- ( );
00057               WordIterator  operator-- ( int doomy );
00058         int   operator*  ( ) const;
00059 
00061   //                                                     //
00062   //  Accessors:                                         //
00063   //                                                     //
00065 
00066 public:
00067 
00069   //                                                     //
00070   //  Data members                                       //
00071   //                                                     //
00073 private:
00074 
00075         list< int >* theList;
00076   list< int >::iterator theIterator;
00077 };
00078 
00079 
00080 //---------------------------------------------------------------------------//
00081 //----------------------------- ConstWordIterator ---------------------------//
00082 //---------------------------------------------------------------------------//
00083 
00084 
00085 class ConstWordIterator
00086 {
00087         friend class WordRep;
00088 
00089 public:
00090         typedef pair< int , int > PII;
00091 
00093   //                                                     //
00094   //  Constructors                                       //
00095   //                                                     //
00097 public:
00098         ConstWordIterator( );
00099         ConstWordIterator( const Word& w , bool begin=true );
00100         ConstWordIterator( const WordIterator& WI );
00101 
00103   //                                                     //
00104   //  Operators                                          //
00105   //                                                     //
00107 public:
00108         ConstWordIterator& operator= ( const WordIterator& WI );
00109 
00110         bool operator!= ( const ConstWordIterator& WI ) const;
00111         bool operator== ( const ConstWordIterator& WI ) const;
00112 
00113         const ConstWordIterator& operator++ ( );
00114               ConstWordIterator  operator++ ( int doomy );
00115         const ConstWordIterator& operator-- ( );
00116               ConstWordIterator  operator-- ( int doomy );
00117         int   operator*  ( ) const;
00118 
00120   //                                                     //
00121   //  Accessors:                                         //
00122   //                                                     //
00124 
00125 public:
00126 
00127 
00129   //                                                     //
00130   //  Data members                                       //
00131   //                                                     //
00133 private:
00134 
00135         const list< int >* theList;
00136   list< int >::const_iterator theIterator;
00137 };
00138 
00139 
00140 #endif
00141 
00142 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:45 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1