Public Member Functions | Private Attributes

claw::it_index< T > Class Template Reference

A class to manage an index and an iterator easily. More...

#include <it_index.hpp>

List of all members.

Public Member Functions

 it_index ()
 Constructor.
 it_index (const T &it, int index=0)
 Constructor.
 it_index (const it_index< T > &that)
 Copy constructor.
void set (const T &it, int index)
 Change the current pair.
bool operator< (const it_index< T > &that) const
bool operator< (const T &it) const
bool operator< (int index) const
bool operator<= (const it_index< T > &that) const
bool operator<= (const T &it) const
bool operator<= (int index) const
bool operator> (const it_index< T > &that) const
bool operator> (const T &it) const
bool operator> (int index) const
bool operator>= (const it_index< T > &that) const
bool operator>= (const T &it) const
bool operator>= (int index) const
bool operator== (const it_index< T > &that) const
bool operator== (const T &it) const
bool operator== (int index) const
bool operator!= (const it_index< T > &that) const
bool operator!= (const T &it) const
bool operator!= (int index) const
it_index< T > operator+ (int index) const
it_index< T > operator- (int index) const
it_index< T > operator* (int index) const
it_index< T > operator/ (int index) const
T::value_type operator* ()
it_index< T > & operator++ ()
it_index< T > operator++ (int)
it_index< T > & operator-- ()
it_index< T > operator-- (int)
it_index< T > & operator+= (int index)
it_index< T > & operator-= (int index)
it_index< T > & operator*= (int index)
it_index< T > & operator/= (int index)
 operator int () const
 operator T () const

Private Attributes

m_it
 Iterator.
int m_index
 Iterator's position.

Detailed Description

template<class T>
class claw::it_index< T >

A class to manage an index and an iterator easily.

Parameters:
T Type of the iterator.
Author:
Julien Jorge

Definition at line 42 of file it_index.hpp.


Constructor & Destructor Documentation

template<class T>
claw::it_index< T >::it_index (  )  [inline]

Constructor.

Definition at line 52 of file it_index.hpp.

      : m_it(), m_index()
    { }

template<class T>
claw::it_index< T >::it_index ( const T &  it,
int  index = 0 
) [inline]

Constructor.

Parameters:
it The iterator.
index Iterator's position.

Definition at line 61 of file it_index.hpp.

      : m_it(it), m_index(index)
    { }

template<class T>
claw::it_index< T >::it_index ( const it_index< T > &  that  )  [inline]

Copy constructor.

Parameters:
that it_index to copy from.

Definition at line 69 of file it_index.hpp.

      : m_it( that.m_it ), m_index( that.m_index )
    { }


Member Function Documentation

template<class T>
claw::it_index< T >::operator int (  )  const [inline]

Definition at line 186 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index; }

template<class T>
claw::it_index< T >::operator T (  )  const [inline]

Definition at line 187 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it; }

template<class T>
bool claw::it_index< T >::operator!= ( const it_index< T > &  that  )  const [inline]

Definition at line 110 of file it_index.hpp.

    { return !(*this == *that); }

template<class T>
bool claw::it_index< T >::operator!= ( const T &  it  )  const [inline]

Definition at line 112 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it != it; }

template<class T>
bool claw::it_index< T >::operator!= ( int  index  )  const [inline]

Definition at line 113 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index!=index; }

template<class T>
it_index<T> claw::it_index< T >::operator* ( int  index  )  const [inline]

Definition at line 119 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { return it_index<T>(m_it + (index-1) * m_index, m_index * index); }

template<class T>
T::value_type claw::it_index< T >::operator* (  )  [inline]

Definition at line 124 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return *m_it; }

template<class T>
it_index<T>& claw::it_index< T >::operator*= ( int  index  )  [inline]

Definition at line 172 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { 
      m_it += (index-1) * m_index;
      m_index *= index;
      return *this;
    }

template<class T>
it_index<T> claw::it_index< T >::operator+ ( int  index  )  const [inline]

Definition at line 115 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { return it_index<T>(m_it + index, m_index + index); }

template<class T>
it_index<T>& claw::it_index< T >::operator++ (  )  [inline]

Definition at line 127 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    {
      ++m_it;
      ++m_index;
      return *this;
    }

template<class T>
it_index<T> claw::it_index< T >::operator++ ( int   )  [inline]

Definition at line 135 of file it_index.hpp.

    {
      it_index<T> r(*this);
      ++(this);
      return r;
    }

template<class T>
it_index<T>& claw::it_index< T >::operator+= ( int  index  )  [inline]

Definition at line 158 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { 
      m_it += index;
      m_index += index;
      return *this;
    }

template<class T>
it_index<T> claw::it_index< T >::operator- ( int  index  )  const [inline]

Definition at line 117 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { return it_index<T>(m_it - index, m_index - index); }

template<class T>
it_index<T>& claw::it_index< T >::operator-- (  )  [inline]

Definition at line 143 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    {
      --m_it;
      --m_index;
      return *this;
    }

template<class T>
it_index<T> claw::it_index< T >::operator-- ( int   )  [inline]

Definition at line 151 of file it_index.hpp.

    {
      it_index<T> r(*this);
      --(this);
      return r;
    }

template<class T>
it_index<T>& claw::it_index< T >::operator-= ( int  index  )  [inline]

Definition at line 165 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { 
      m_it -= index;
      m_index -= index;
      return *this;
    }

template<class T>
it_index<T> claw::it_index< T >::operator/ ( int  index  )  const [inline]

Definition at line 121 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { return it_index<T>(m_it - (m_index - m_index/index), m_index / index); }

template<class T>
it_index<T>& claw::it_index< T >::operator/= ( int  index  )  [inline]

Definition at line 179 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { 
      m_it -= m_index - m_index/index;
      m_index /= index;
      return *this;
    }

template<class T>
bool claw::it_index< T >::operator< ( int  index  )  const [inline]

Definition at line 88 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index < index; }

template<class T>
bool claw::it_index< T >::operator< ( const it_index< T > &  that  )  const [inline]

Definition at line 84 of file it_index.hpp.

References claw::it_index< T >::m_index.

    { return m_index < that.m_index; }

template<class T>
bool claw::it_index< T >::operator< ( const T &  it  )  const [inline]

Definition at line 87 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it < it; }

template<class T>
bool claw::it_index< T >::operator<= ( const it_index< T > &  that  )  const [inline]

Definition at line 90 of file it_index.hpp.

    { return (*this < that) || (*this == that); }

template<class T>
bool claw::it_index< T >::operator<= ( int  index  )  const [inline]

Definition at line 93 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index <= index; }

template<class T>
bool claw::it_index< T >::operator<= ( const T &  it  )  const [inline]

Definition at line 92 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it <= it; }

template<class T>
bool claw::it_index< T >::operator== ( int  index  )  const [inline]

Definition at line 108 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index==index; }

template<class T>
bool claw::it_index< T >::operator== ( const it_index< T > &  that  )  const [inline]

Definition at line 105 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

    { return (m_it == that.m_it) && (m_index == that.m_index); }

template<class T>
bool claw::it_index< T >::operator== ( const T &  it  )  const [inline]

Definition at line 107 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it == it; }

template<class T>
bool claw::it_index< T >::operator> ( const it_index< T > &  that  )  const [inline]

Definition at line 95 of file it_index.hpp.

References claw::it_index< T >::m_index.

    { return m_index > that.m_index; }

template<class T>
bool claw::it_index< T >::operator> ( const T &  it  )  const [inline]

Definition at line 97 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it > it; }

template<class T>
bool claw::it_index< T >::operator> ( int  index  )  const [inline]

Definition at line 98 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index > index; }

template<class T>
bool claw::it_index< T >::operator>= ( int  index  )  const [inline]

Definition at line 103 of file it_index.hpp.

References claw::it_index< T >::m_index.

{ return m_index >= index; }

template<class T>
bool claw::it_index< T >::operator>= ( const it_index< T > &  that  )  const [inline]

Definition at line 100 of file it_index.hpp.

    { return (*this > that) || (*this == that); }

template<class T>
bool claw::it_index< T >::operator>= ( const T &  it  )  const [inline]

Definition at line 102 of file it_index.hpp.

References claw::it_index< T >::m_it.

{ return m_it >= it; }

template<class T>
void claw::it_index< T >::set ( const T &  it,
int  index 
) [inline]

Change the current pair.

Parameters:
it The new iterator.
index New iterator's position.

Definition at line 78 of file it_index.hpp.

References claw::it_index< T >::m_index, and claw::it_index< T >::m_it.

Referenced by claw::text::kmp< RandomIterator >::operator()().

    {
      m_it = it;
      m_index = index;
    }


Member Data Documentation

template<class T>
int claw::it_index< T >::m_index [private]
template<class T>
T claw::it_index< T >::m_it [private]

The documentation for this class was generated from the following file: