TList
class description - source file - inheritance tree
protected:
virtual void DeleteLink(TObjLink* lnk)
TObjLink** DoSort(TObjLink** head, Int_t n)
TObjLink* FindLink(TObject* obj, Int_t& idx)
TObjLink* LinkAt(Int_t idx)
Bool_t LnkCompare(TObjLink* l1, TObjLink* l2)
virtual TObjLink* NewLink(TObject* obj, TObjLink* prev = 0)
virtual TObjLink* NewOptLink(TObject* obj, Option_t* opt, TObjLink* prev = 0)
public:
TList TList()
TList TList(TObject* parent)
virtual void ~TList()
virtual void Add(TObject* obj)
virtual void Add(TObject* obj, Option_t* opt)
virtual void AddAfter(TObject* after, TObject* obj)
virtual void AddAfter(TObjLink* after, TObject* obj)
virtual void AddAt(TObject* obj, Int_t idx)
virtual void AddBefore(TObject* before, TObject* obj)
virtual void AddBefore(TObjLink* before, TObject* obj)
virtual void AddFirst(TObject* obj)
virtual void AddFirst(TObject* obj, Option_t* opt)
virtual void AddLast(TObject* obj)
virtual void AddLast(TObject* obj, Option_t* opt)
virtual TObject* After(TObject* obj)
virtual TObject* At(Int_t idx)
virtual TObject* Before(TObject* obj)
TClass* Class()
virtual void Clear(Option_t* option)
virtual void Delete(Option_t* option)
virtual TObject* FindObject(Text_t* name)
virtual TObject* FindObject(TObject* obj)
virtual TObject* First()
virtual TObjLink* FirstLink()
virtual TClass* IsA()
Bool_t IsAscending()
virtual TObject* Last()
virtual TObjLink* LastLink()
virtual TIterator* MakeIterator(Bool_t dir = kIterForward)
virtual TObject* Remove(TObject* obj)
virtual TObject* Remove(TObjLink* lnk)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Sort(Bool_t order = kSortAscending)
virtual void Streamer(TBuffer& b)
protected:
TObjLink* fFirst pointer to first entry in linked list
TObjLink* fLast pointer to last entry in linked list
TObjLink* fCache cache to speedup sequential calling of Before() and After() functions
Bool_t fAscending sorting order (when calling Sort() or for TSortedList)
See also
-
THashList, TSortedList
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 ForEach macro:
GetListOfPrimitives()->ForEach(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.
~TList()
Delete the list. Objects are not deleted.
void AddFirst(TObject *obj)
Add object at the beginning of the list.
void AddFirst(TObject *obj, Option_t *opt)
Add object at the beginning of the list and also store option.
Storing an option is useful when one wants to change the behaviour
of an object a little without having to create a complete new
copy of the object. This feature is used, for example, by the Draw()
method. It allows the same object to be drawn in different ways.
void AddLast(TObject *obj)
Add object at the end of the list.
void AddLast(TObject *obj, Option_t *opt)
Add object at the end of the list and also store option.
Storing an option is useful when one wants to change the behaviour
of an object a little without having to create a complete new
copy of the object. This feature is used, for example, by the Draw()
method. It allows the same object to be drawn in different ways.
void AddBefore(TObject *before, TObject *obj)
Insert object before object before in the list.
void AddBefore(TObjLink *before, TObject *obj)
Insert object before the specified ObjLink object. If before = 0 then add
to the head of the list. An ObjLink can be obtained by looping over a list
using the above describe iterator method 3.
void AddAfter(TObject *after, TObject *obj)
Insert object after object after in the list.
void AddAfter(TObjLink *after, TObject *obj)
Insert object after the specified ObjLink object. If after = 0 then add
to the tail of the list. An ObjLink can be obtained by looping over a list
using the above describe iterator method 3.
void AddAt(TObject *obj, Int_t idx)
Insert object at position idx in the list.
TObject* After(TObject *obj) const
Returns the object after object obj. Returns 0 if obj is last in list.
TObject* At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
TObject* Before(TObject *obj) const
Returns the object before object obj. Returns 0 if obj is first in list.
void Clear(Option_t *option)
Remove all objects from the list. Does not delete the objects.
void Delete(Option_t *)
Remove all objects from the list AND delete all heap based objects.
void DeleteLink(TObjLink *lnk)
Delete a TObjLink object.
TObject* FindObject(const Text_t *name) const
Find an object in this list using its name. Requires a sequential
scan till the object has been found. Returns 0 if object with specified
name is not found. This method overrides the generic FindObject()
of TCollection for efficiency reasons.
TObject* FindObject(TObject *obj) const
Find an object in this list using the object's IsEqual()
member function. Requires a sequential scan till the object has
been found. Returns 0 if object is not found.
This method overrides the generic FindObject() of TCollection for
efficiency reasons.
TObjLink* FindLink(TObject *obj, Int_t &idx) const
Returns the TObjLink object that contains object obj. In idx it returns
the position of the object in the list.
TObject* First() const
Return the first object in the list. Returns 0 when list is empty.
TObject* Last() const
Return the last object in the list. Returns 0 when list is empty.
TObjLink* LinkAt(Int_t idx) const
Return the TObjLink object at index idx.
TIterator* MakeIterator(Bool_t dir) const
Return a list iterator.
TObjLink* NewLink(TObject *obj, TObjLink *prev)
Return a new TObjLink.
TObjLink* NewOptLink(TObject *obj, Option_t *opt, TObjLink *prev)
Return a new TObjOptLink (a TObjLink that also stores the option).
TObject* Remove(TObject *obj)
Remove object from the list.
TObject* Remove(TObjLink *lnk)
Remove object link (and therefore the object it contains)
from the list.
void Sort(Bool_t order)
Sort linked list. Real sorting is done in private function DoSort().
The list can only be sorted when is contains objects of a sortable
class.
Bool_t LnkCompare(TObjLink *l1, TObjLink *l2)
Compares the objects stored in the TObjLink objects.
Depending on the flag IsAscending() the function returns
true if the object in l1 <= l2 (ascending) or l2 <= l1 (descending).
TObjLink** DoSort(TObjLink **head, Int_t n)
Sort linked list.
Inline Functions
TList TList()
TList TList(TObject* parent)
void Add(TObject* obj)
void Add(TObject* obj, Option_t* opt)
TObjLink* FirstLink()
TObjLink* LastLink()
Bool_t IsAscending()
TClass* Class()
TClass* IsA()
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
Author: Fons Rademakers 10/08/95
Last update: 2.22/07 05/07/99 18.54.53 by Fons Rademakers
Copyright (c) 1995-1999, The ROOT System, All rights reserved. *
ROOT page - Class index - Top of the page
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.