Skip to main content

The DualDirIterator Class Template Reference

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 by Doxygen 1.14.0.