+
class TListIter
-
library: libCore
#include "TList.h"
Display options:
Show inherited
Show non-public

class TListIter: public TIterator


TList

A doubly linked list. All classes inheriting from TObject can be
inserted in a TList. Before being inserted into the list the object
pointer is wrapped in a TObjLink object which contains, besides
the object pointer also a previous and next pointer.

There are basically four ways to iterate over a TList (in order
of preference, if not forced by other constraints):
1) Using the R__FOR_EACH macro:
GetListOfPrimitives()->R__FOR_EACH(TObject,Paint)(option);

2) Using the TList iterator TListIter (via the wrapper class
TIter):
TIter next(GetListOfPrimitives());
while (TObject *obj = next())
obj->Draw(next.GetOption());

3) Using the TObjLink list entries (that wrap the TObject*):
TObjLink *lnk = GetListOfPrimitives()->FirstLink();
while (lnk) {
lnk->GetObject()->Draw(lnk->GetOption());
lnk = lnk->Next();
}

4) Using the TList's After() and Before() member functions:
TFree *idcur = this;
while (idcur) {


idcur = (TFree*)GetListOfFree()->After(idcur);
}

Methods 2, 3 and 4 can also easily iterate backwards using either
a backward TIter (using argument kIterBackward) or by using
LastLink() and lnk->Prev() or by using the Before() member.
                           


Function Members (Methods)

public:
TListIter(const TListIter& iter)
TListIter(const TList* l, Bool_t dir = kIterForward)
~TListIter()
static TClass*Class()
virtual const TCollection*GetCollection() const
virtual Option_t*GetOption() const
virtual TClass*IsA() const
virtual TObject*Next()
TObject*TIterator::operator()()
virtual TIterator&operator=(const TIterator& rhs)
TListIter&operator=(const TListIter& rhs)
virtual voidReset()
voidSetOption(Option_t* option)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
protected:
TListIter()

Data Members

protected:
TObjLink*fCurCursorcurrent position in list
TObjLink*fCursornext position in list
Bool_tfDirectioniteration direction
const TList*fListlist being iterated
Bool_tfStartediteration started

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TListIter(const TList* l, Bool_t dir = kIterForward)
 Create a new list iterator. By default the iteration direction
 is kIterForward. To go backward use kIterBackward.
TListIter(const TListIter& iter)
 Copy ctor.
TIterator & operator=(const TIterator &rhs)
 Overridden assignment operator.
TListIter & operator=(const TListIter &rhs)
 Overloaded assignment operator.
TObject * Next()
 Return next object in the list. Returns 0 when no more objects in list.
Option_t * GetOption()
 Returns the object option stored in the list.
void SetOption(Option_t* option)
 Sets the object option stored in the list.
TListIter(const TListIter& iter)
{ }
~TListIter()
{ }
const TCollection * GetCollection()
{ return fList; }
void Reset()
{ fStarted = kFALSE; }

Author: Fons Rademakers 10/08/95
Last update: root/cont:$Name: $:$Id: TList.cxx,v 1.22 2006/07/26 13:36:42 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.