AliPhysics  b43479f (b43479f)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliClusterContainer::all_iterator Class Reference

stl iterator over all clusters More...

#include <AliClusterContainer.h>

Inheritance diagram for AliClusterContainer::all_iterator:

Public Member Functions

 all_iterator (const AliClusterContainer *cont, int startpos, bool forward=true)
 
 all_iterator (const all_iterator &other)
 
virtual ~all_iterator ()
 
all_iteratoroperator= (const all_iterator &other)
 
bool operator!= (const all_iterator &other) const
 
all_iteratoroperator++ ()
 
all_iterator operator++ (int)
 
all_iteratoroperator-- ()
 
all_iterator operator-- (int)
 
AliVCluster * operator* () const
 

Private Member Functions

 all_iterator ()
 

Private Attributes

const AliClusterContainerfkContainer
 Container iterated over. More...
 
int fCurrentPos
 Current position inside the container. More...
 
bool fForward
 Direction, expressed in forward direction. More...
 

Detailed Description

stl iterator over all clusters

Author
Markus Fasel marku.nosp@m.s.fa.nosp@m.sel@c.nosp@m.ern..nosp@m.ch, Lawrence Berkeley National Laboratory
Date
March 16, 2016

Bi-directional iterator over all clusters in the array. The iterator is used in the standard way a c++ iterator is used. The container is responsible creating it. Afterwards one uses the prefix or postfix increment or decrement operator, depending on the direction of the iteration.

for(AliClusterContainer::iterator it = cont.begin(); it != cont.end(); ++cont){
std::cout << "Cluster energy: " << (*it)->E() std::endl; // do something with the cluster inside
}

If you are using c++11 this reduces to

for(auto it : cont){
std::cout << "Cluster energy: " << it->E() std::endl; // do something with the cluster inside
}

using c++11 range-based iterations.

As the postfix operator needs to perform a copy of the iterator, the prefix operator will have a better performance and should be preferred.

Definition at line 117 of file AliClusterContainer.h.

Constructor & Destructor Documentation

AliClusterContainer::all_iterator::all_iterator ( const AliClusterContainer cont,
int  startpos,
bool  forward = true 
)

Content of all_iterator Constructor, inializing the iterator with

  • Cluster container to iterate over
  • Starting position for the iteration
  • Direction of the iteration (default: forward)

Note: Iterators should be created by the object it iterates over and not by hand.

Parameters
[in]contContainer to be iterated over (not modified)
[in]startposStart position for the iteration
[in]forwardIf true iterator is a forward iterator

Definition at line 658 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator::all_iterator ( const all_iterator other)

Copy constructor. For the underlying container the pointer is copied.

Parameters
[in]otherReference for the copy

Definition at line 673 of file AliClusterContainer.cxx.

virtual AliClusterContainer::all_iterator::~all_iterator ( )
inlinevirtual

Definition at line 124 of file AliClusterContainer.h.

AliClusterContainer::all_iterator::all_iterator ( )
private

Member Function Documentation

bool AliClusterContainer::all_iterator::operator!= ( const all_iterator other) const

Comparison operator. The comparison is performed based on the current position of the iterator.

Parameters
[in]otherObject to compare to.
Returns
If true the positions of the two iterators match

Definition at line 701 of file AliClusterContainer.cxx.

AliVCluster * AliClusterContainer::all_iterator::operator* ( ) const

Dereferencing operator. Accessing cluster at the current position of the iterator in the cluster container

Returns

Definition at line 762 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator & AliClusterContainer::all_iterator::operator++ ( )

Incrementation prefix operator. Incrementing/Decrementing the postion of the iterator in the array based on the direction.

Returns
State of the iterator (reference) after iteration.

Definition at line 710 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator AliClusterContainer::all_iterator::operator++ ( int  )

Incrementation postfix operator. Incrementing/Decrementing the postion of the iterator in the array based on the direction.

Parameters
[in]Notused, only defining the operator as postfix operator
Returns
State of the iterator (copy) before iteration

Definition at line 725 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator & AliClusterContainer::all_iterator::operator-- ( )

Decrementation prefix operator. Decrementing/Incrementing the postion of the iterator in the array based on the direction.

Returns
State of the iterator (reference) after iteration.

Definition at line 736 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator AliClusterContainer::all_iterator::operator-- ( int  )

Decrementation postfix operator. Decrementing/Incrementing the postion of the iterator in the array based on the direction.

Parameters
[in]Notused, only defining the operator as postfix operator
Returns
State of the iterator (copy) before iteration

Definition at line 751 of file AliClusterContainer.cxx.

AliClusterContainer::all_iterator & AliClusterContainer::all_iterator::operator= ( const all_iterator other)

Assignmet operator, copying properties of the reference iterator

Parameters
[in]otherReference for the assignment
Returns
This object after the assingment

Definition at line 686 of file AliClusterContainer.cxx.

Member Data Documentation

int AliClusterContainer::all_iterator::fCurrentPos
private

Current position inside the container.

Definition at line 139 of file AliClusterContainer.h.

Referenced by operator!=(), and operator=().

bool AliClusterContainer::all_iterator::fForward
private

Direction, expressed in forward direction.

Definition at line 140 of file AliClusterContainer.h.

Referenced by operator=().

const AliClusterContainer* AliClusterContainer::all_iterator::fkContainer
private

Container iterated over.

Definition at line 138 of file AliClusterContainer.h.

Referenced by operator=().


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