PowerWordIterator.h

Go to the documentation of this file.
00001 // Copyright (C) 2005 Alexander Ushakov
00002 // Contents: Definition of class PowerWordIterator
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 
00027 public:
00028         typedef pair< int , int > PII;
00029 
00031   //                                                     //
00032   //  Constructors                                       //
00033   //                                                     //
00035 public:
00036         WordIterator( );
00037         WordIterator( Word& w , bool begin=true );
00038 
00040   //                                                     //
00041   //  Operators                                          //
00042   //                                                     //
00044 public:
00045         bool operator!= ( const WordIterator& WI ) const;
00046         bool operator== ( const WordIterator& WI ) const;
00047 
00048         const WordIterator& operator++ ( );
00049               WordIterator  operator++ ( int doomy );
00050         const WordIterator& operator-- ( );
00051               WordIterator  operator-- ( int doomy );
00052         PII  operator*  ( ) const;
00053 
00055   //                                                     //
00056   //  Accessors:                                         //
00057   //                                                     //
00059 
00060 public:
00061 
00063   //                                                     //
00064   //  Data members                                       //
00065   //                                                     //
00067 private:
00068 
00069         Word* theWord;
00070   list< PII >::iterator theIterator;
00071         int theOffset;
00072 
00073 };
00074 
00075 
00076 //---------------------------------------------------------------------------//
00077 //----------------------------- ConstWordIterator ---------------------------//
00078 //---------------------------------------------------------------------------//
00079 
00080 
00081 class ConstWordIterator
00082 {
00083         frient class Word;
00084 
00085 public:
00086         typedef pair< int , int > PII;
00087 
00089   //                                                     //
00090   //  Constructors                                       //
00091   //                                                     //
00093 public:
00094         ConstWordIterator( );
00095         ConstWordIterator( const Word& w , bool begin=true );
00096         ConstWordIterator( const WordIterator& WI );
00097 
00099   //                                                     //
00100   //  Operators                                          //
00101   //                                                     //
00103 public:
00104         ConstWordIterator& operator= ( const WordIterator& WI );
00105 
00106         bool operator!= ( const ConstWordIterator& WI ) const;
00107         bool operator== ( const ConstWordIterator& WI ) const;
00108 
00109         const ConstWordIterator& operator++ ( );
00110               ConstWordIterator  operator++ ( int doomy );
00111         const ConstWordIterator& operator-- ( );
00112               ConstWordIterator  operator-- ( int doomy );
00113         PII  operator*  ( ) const;
00114 
00116   //                                                     //
00117   //  Accessors:                                         //
00118   //                                                     //
00120 
00121 public:
00122 
00123 
00125   //                                                     //
00126   //  Data members                                       //
00127   //                                                     //
00129 private:
00130 
00131         const Word* theWord;
00132   list< PII >::const_iterator theIterator;
00133         int theOffset;
00134 
00135 };
00136 
00137 
00138 #endif
00139 
00140 
 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