STK++ 0.9.13
STK::BiDirectionalIterator< Array > Struct Template Reference

BiDirectionalIterator allows to loop over the element of one dimensional list containers. More...

#include <STK_BiDirectionalIterator.h>

Inheritance diagram for STK::BiDirectionalIterator< Array >:
Inheritance graph

Public Types

enum  {
  structure_ = hidden::IteratorTraits< BiDirectionalIterator >::structure_ , orient_ = hidden::IteratorTraits< BiDirectionalIterator >::orient_ , sizeCols_ = hidden::IteratorTraits< BiDirectionalIterator >::sizeCols_ , sizeRows_ = hidden::IteratorTraits< BiDirectionalIterator >::sizeRows_ ,
  size_ = hidden::IteratorTraits< BiDirectionalIterator >::size_ , storage_ = hidden::IteratorTraits< BiDirectionalIterator >::storage_
}
 
typedef DenseIteratorBase< BiDirectionalIteratorBase
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::Index Index
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::Type Type
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::TypeConst TypeConst
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::RowRange RowRange
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::ColRange ColRange
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::iterator_category iterator_category
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::value_type value_type
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::reference reference
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::pointer pointer
 
typedef hidden::IteratorTraits< BiDirectionalIterator >::difference_type difference_type
 
- Public Types inherited from STK::DenseIteratorBase< BiDirectionalIterator< Array > >
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::Index Index
 
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::iterator_category iterator_category
 
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::value_type value_type
 
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::reference reference
 
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::pointer pointer
 
typedef hidden::IteratorTraits< BiDirectionalIterator< Array > >::difference_type difference_type
 

Public Member Functions

 BiDirectionalIterator (Array &list1D, int pos)
 
 BiDirectionalIterator (BiDirectionalIterator const &it)
 
 ~BiDirectionalIterator ()
 
BiDirectionalIteratoroperator= (BiDirectionalIterator const &it)
 
reference operator* ()
 
pointer operator-> ()
 
- Public Member Functions inherited from STK::DenseIteratorBase< BiDirectionalIterator< Array > >
Index pos () const
 
BiDirectionalIterator< Array > & operator++ ()
 next position
 
BiDirectionalIterator< Array > & operator++ (int junk)
 next position
 
BiDirectionalIterator< Array > & operator-- ()
 previous position
 
BiDirectionalIterator< Array > & operator-- (int)
 previous position
 
BiDirectionalIterator< Array > & operator+= (Index n)
 add n positions to current position
 
BiDirectionalIterator< Array > & operator-= (Index n)
 Subtract n positions to current position.
 
- Public Member Functions inherited from STK::IRecursiveTemplate< Derived >
Derived & asDerived ()
 static cast : return a reference of this with a cast to the derived class.
 
Derived constasDerived () const
 static cast : return a const reference of this with a cast to the derived class.
 
Derived * asPtrDerived ()
 static cast : return a ptr on a Derived of this with a cast to the derived class.
 
Derived constasPtrDerived () const
 static cast : return a ptr on a constant Derived of this with a cast to the derived class.
 
Derived * clone () const
 create a leaf using the copy constructor of the Derived class.
 
Derived * clone (bool isRef) const
 create a leaf using the copy constructor of the Derived class and a flag determining if the clone is a reference or not.
 

Public Attributes

Index pos_
 Current position.
 

Private Attributes

Array & list1D_
 

Friends

void swap (BiDirectionalIterator &lhs, BiDirectionalIterator &rhs)
 

Additional Inherited Members

- Protected Member Functions inherited from STK::DenseIteratorBase< BiDirectionalIterator< Array > >
 DenseIteratorBase ()
 default constructor
 
 DenseIteratorBase (Index pos)
 constructor with specified position
 
 DenseIteratorBase (DenseIteratorBase const &it)
 copy constructor.
 
 ~DenseIteratorBase ()
 destructor
 
- Protected Member Functions inherited from STK::IRecursiveTemplate< Derived >
 IRecursiveTemplate ()
 constructor.
 
 ~IRecursiveTemplate ()
 destructor.
 
- Protected Attributes inherited from STK::DenseIteratorBase< BiDirectionalIterator< Array > >
Index pos_
 Current position.
 

Detailed Description

template<class Array>
struct STK::BiDirectionalIterator< Array >

BiDirectionalIterator allows to loop over the element of one dimensional list containers.

See also
STK::List1D

Definition at line 127 of file STK_BiDirectionalIterator.h.

Member Typedef Documentation

◆ Base

Definition at line 131 of file STK_BiDirectionalIterator.h.

◆ ColRange

Definition at line 148 of file STK_BiDirectionalIterator.h.

◆ difference_type

template<class Array >
typedef hidden::IteratorTraits<BiDirectionalIterator>::difference_type STK::BiDirectionalIterator< Array >::difference_type

Definition at line 154 of file STK_BiDirectionalIterator.h.

◆ Index

Definition at line 132 of file STK_BiDirectionalIterator.h.

◆ iterator_category

template<class Array >
typedef hidden::IteratorTraits<BiDirectionalIterator>::iterator_category STK::BiDirectionalIterator< Array >::iterator_category

Definition at line 150 of file STK_BiDirectionalIterator.h.

◆ pointer

Definition at line 153 of file STK_BiDirectionalIterator.h.

◆ reference

template<class Array >
typedef hidden::IteratorTraits<BiDirectionalIterator>::reference STK::BiDirectionalIterator< Array >::reference

Definition at line 152 of file STK_BiDirectionalIterator.h.

◆ RowRange

Definition at line 147 of file STK_BiDirectionalIterator.h.

◆ Type

Definition at line 144 of file STK_BiDirectionalIterator.h.

◆ TypeConst

template<class Array >
typedef hidden::IteratorTraits<BiDirectionalIterator>::TypeConst STK::BiDirectionalIterator< Array >::TypeConst

Definition at line 145 of file STK_BiDirectionalIterator.h.

◆ value_type

template<class Array >
typedef hidden::IteratorTraits<BiDirectionalIterator>::value_type STK::BiDirectionalIterator< Array >::value_type

Definition at line 151 of file STK_BiDirectionalIterator.h.

Member Enumeration Documentation

◆ anonymous enum

template<class Array >
anonymous enum
Enumerator
structure_ 
orient_ 
sizeCols_ 
sizeRows_ 
size_ 
storage_ 

Definition at line 134 of file STK_BiDirectionalIterator.h.

135 {
136 structure_ = hidden::IteratorTraits< BiDirectionalIterator >::structure_,
137 orient_ = hidden::IteratorTraits< BiDirectionalIterator >::orient_,
138 sizeCols_ = hidden::IteratorTraits< BiDirectionalIterator >::sizeCols_,
139 sizeRows_ = hidden::IteratorTraits< BiDirectionalIterator >::sizeRows_,
140 size_ = hidden::IteratorTraits< BiDirectionalIterator >::size_,
141 storage_ = hidden::IteratorTraits< BiDirectionalIterator >::storage_
142 };

Constructor & Destructor Documentation

◆ BiDirectionalIterator() [1/2]

template<class Array >
STK::BiDirectionalIterator< Array >::BiDirectionalIterator ( Array &  list1D,
int  pos 
)
inline

Definition at line 159 of file STK_BiDirectionalIterator.h.

160 : Base(pos), RowRange(), list1D_(list1D)
161 {}
DenseIteratorBase< BiDirectionalIterator > Base
hidden::IteratorTraits< BiDirectionalIterator >::RowRange RowRange

◆ BiDirectionalIterator() [2/2]

template<class Array >
STK::BiDirectionalIterator< Array >::BiDirectionalIterator ( BiDirectionalIterator< Array > const it)
inline

Definition at line 162 of file STK_BiDirectionalIterator.h.

163 : Base(it), RowRange(it), list1D_(it.list1D_) {}

◆ ~BiDirectionalIterator()

template<class Array >
STK::BiDirectionalIterator< Array >::~BiDirectionalIterator ( )
inline

Definition at line 164 of file STK_BiDirectionalIterator.h.

164{}

Member Function Documentation

◆ operator*()

template<class Array >
reference STK::BiDirectionalIterator< Array >::operator* ( )
inline

◆ operator->()

template<class Array >
pointer STK::BiDirectionalIterator< Array >::operator-> ( )
inline

◆ operator=()

template<class Array >
BiDirectionalIterator & STK::BiDirectionalIterator< Array >::operator= ( BiDirectionalIterator< Array > const it)
inline

Definition at line 165 of file STK_BiDirectionalIterator.h.

166 {
167 Base::operator =(it);
168 RowRange::operator =(it);
169 list1D_ = it.list1D_;
170 return *this;
171 }

References STK::BiDirectionalIterator< Array >::list1D_.

Friends And Related Symbol Documentation

◆ swap

template<class Array >
void swap ( BiDirectionalIterator< Array > &  lhs,
BiDirectionalIterator< Array > &  rhs 
)
friend

Definition at line 176 of file STK_BiDirectionalIterator.h.

177 {
178 Base::swap(lhs, rhs);
179 std::swap(lhs.list1D_, rhs.list1D_);
180 }
friend void swap(DenseIteratorBase &lhs, DenseIteratorBase &rhs)
swap two iterators (only position is swaped)

Member Data Documentation

◆ list1D_

◆ pos_

template<class Array >
Index STK::DenseIteratorBase< Derived >::pos_

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