SymbolSetIterator.h
Go to the documentation of this file.
00001 #ifndef SymbolSetIterator_H
00002 #define SymbolSetIterator_H
00003 
00004 #include <iterator>
00005 
00006 #include "Const.h"
00007 using namespace std;
00008 //using namespace momdp;
00009 namespace momdp 
00010 {
00011 template <typename T> class SymbolSet;
00012 
00013 template <typename T>
00014 class SymbolSetIterator: public iterator<input_iterator_tag, T>
00015 {
00016         SymbolSet<T> *parentSet;
00017         int symbolID;
00018 
00019 
00020 public:
00021         SymbolSetIterator(SymbolSet<T> *_parentSet, int _symbolID) 
00022         {
00023                 parentSet = _parentSet;
00024                 symbolID = _symbolID;
00025         }
00026 
00027         SymbolSetIterator(const SymbolSetIterator& mit) 
00028         {
00029                 this->parentSet = mit.parentSet;
00030                 this->symbolID = mit.symbolID;
00031         }
00032 
00033         SymbolSetIterator<T>& operator++() 
00034         {
00035                 ++symbolID;
00036                 return *this;
00037         }
00038 
00039         void operator++(int) 
00040         {
00041                 symbolID++;
00042         }
00043 
00044         bool operator==(const SymbolSetIterator& rhs) 
00045         {
00046                 if(parentSet == rhs.parentSet && symbolID == rhs.symbolID)
00047                 {
00048                         return true;
00049                 }
00050                 return false;
00051         }
00052 
00053         bool operator!=(const SymbolSetIterator& rhs) 
00054         {
00055                 if(parentSet != rhs.parentSet || symbolID != rhs.symbolID)
00056                 {
00057                         return true;
00058                 }
00059                 return false;
00060         }
00061 
00062         int operator*() 
00063         {
00064                 return symbolID;
00065         }
00066 
00067         T& value() 
00068         {
00069                 return parentSet->getSymbol(symbolID);
00070         }
00071         int index() 
00072         {
00073                 return symbolID;
00074         }
00075 
00076 };
00077 
00078 }
00079 
00080 
00081 #endif
00082 
00083 
00084 


appl
Author(s): petercai
autogenerated on Tue Jan 7 2014 11:02:29