Skip to main content

DualDirIterator Class Template

helper class representing an iterator that can iterate forwards or backwards More...

Declaration​

template <class C, class I> class DualDirIterator<C, I> { ... }

Public Constructors Index​

template <class C, class I>
DualDirIterator (C &container, bool fwd)

Public Operators Index​

template <class C, class I>
voidoperator++ ()
template <class C, class I>
I &operator* ()

Public Member Functions Index​

template <class C, class I>
boolatEnd ()

Private Member Attributes Index​

template <class C, class I>
C &m_container
template <class C, class I>
boolm_forward
template <class C, class I>
C::iteratorm_it
template <class C, class I>
C::reverse_iteratorm_rit

Description​

helper class representing an iterator that can iterate forwards or backwards

Definition at line 559 of file diagram.cpp.

Public Constructors​

DualDirIterator()​

template <class C, class I>
DualDirIterator< C, I >::DualDirIterator (C & container, bool fwd)
inline

Definition at line 562 of file diagram.cpp.

562 DualDirIterator(C &container,bool fwd)
563 : m_container(container), m_forward(fwd)
564 {
565 if (fwd) m_it = container.begin();
566 else m_rit = container.rbegin();
567 }

References DualDirIterator< C, I >::m_container, DualDirIterator< C, I >::m_forward, DualDirIterator< C, I >::m_it and DualDirIterator< C, I >::m_rit.

Public Operators​

operator*()​

template <class C, class I>
I & DualDirIterator< C, I >::operator* ()
inline

Definition at line 572 of file diagram.cpp.

573 {
574 return m_forward ? *m_it : *m_rit;
575 }

References DualDirIterator< C, I >::m_forward, DualDirIterator< C, I >::m_it and DualDirIterator< C, I >::m_rit.

operator++()​

template <class C, class I>
void DualDirIterator< C, I >::operator++ ()
inline

Definition at line 568 of file diagram.cpp.

569 {
570 if (m_forward) ++m_it++; else ++m_rit;
571 }

References DualDirIterator< C, I >::m_forward, DualDirIterator< C, I >::m_it and DualDirIterator< C, I >::m_rit.

Public Member Functions​

atEnd()​

template <class C, class I>
bool DualDirIterator< C, I >::atEnd ()
inline

Definition at line 577 of file diagram.cpp.

577 bool atEnd()
578 {
579 if (m_forward)
580 return m_it==m_container.end();
581 else
582 return m_rit==m_container.rend();
583 }

References DualDirIterator< C, I >::m_container, DualDirIterator< C, I >::m_forward, DualDirIterator< C, I >::m_it and DualDirIterator< C, I >::m_rit.

Referenced by TreeDiagram::drawBoxes.

Private Member Attributes​

m_container​

template <class C, class I>
C& DualDirIterator< C, I >::m_container

m_forward​

template <class C, class I>
bool DualDirIterator< C, I >::m_forward

m_it​

template <class C, class I>
C::iterator DualDirIterator< C, I >::m_it

m_rit​

template <class C, class I>
C::reverse_iterator DualDirIterator< C, I >::m_rit

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


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.14.0.