TOrdCollection
class description - source file - inheritance tree
private:
Bool_t IllegalIndex(const char* method, Int_t idx) const
void Init(Int_t capacity)
Int_t LogIndex(Int_t idx) const
Bool_t LowWaterMark() const
void MoveGapTo(Int_t newGapStart)
Int_t PhysIndex(Int_t idx) const
void SetCapacity(Int_t newCapacity)
public:
TOrdCollection TOrdCollection(Int_t capacity = kDefaultCapacity)
virtual void ~TOrdCollection()
virtual void AddAfter(TObject* after, TObject* obj)
virtual void AddAt(TObject* obj, Int_t idx)
virtual void AddBefore(TObject* before, TObject* obj)
virtual void AddFirst(TObject* obj)
virtual void AddLast(TObject* obj)
virtual TObject* After(TObject* obj) const
virtual TObject* At(Int_t idx) const
virtual TObject* Before(TObject* obj) const
Int_t BinarySearch(TObject* obj)
static TClass* Class()
virtual void Clear(Option_t* option)
virtual void Delete(Option_t* option)
virtual TObject* First() const
virtual TObject** GetObjectRef(const TObject* obj) const
virtual Int_t IndexOf(const TObject* obj) const
virtual TClass* IsA() const
virtual TObject* Last() const
virtual TIterator* MakeIterator(Bool_t dir = kIterForward) const
void PutAt(TObject* obj, Int_t idx)
virtual TObject* Remove(TObject* obj)
virtual TObject* RemoveAt(Int_t idx)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void Sort()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
TObject** fCont
Int_t fCapacity
Int_t fGapStart
Int_t fGapSize
public:
static const enum TObject:: kDefaultCapacity
static const enum TObject:: kMinExpand
static const enum TObject:: kShrinkFactor
TOrdCollection
Ordered collection. An ordered collection has TList insertion
semantics but is implemented using an array of TObject*'s. It uses
less space than a TList (since there is no need for the prev and
next pointers), but it is more costly to insert objects (since it
has to create a gap by copying object pointers). TOrdCollection
is better than TList when objects are only added at the end of the
collection since no copying needs to be done.
/*
*/
TOrdCollection(Int_t capacity)
Create an ordered collection.
~TOrdCollection()
Delete the collection. Objects are not deleted unless the TOrdCollection
is the owner (set via SetOwner()).
void AddAt(TObject *obj, Int_t idx)
Insert object at position idx in the collection.
void AddFirst(TObject *obj)
Insert object at beginning of collection.
void AddLast(TObject *obj)
Add object at the end of the collection.
void AddBefore(TObject *before, TObject *obj)
Insert object before object before in the collection.
void AddAfter(TObject *after, TObject *obj)
Insert object after object after in the collection.
TObject* After(TObject *obj) const
Return the object after object obj. Returns 0 if obj is last
in collection.
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 collection.
void Clear(Option_t *)
Remove all objects from the collection. Does not delete the objects
unless the TOrdCollection is the owner (set via SetOwner()).
void Delete(Option_t *)
Remove all objects from the collection AND delete all heap based objects.
TObject* First() const
Return the first object in the collection. Returns 0 when collection
is empty.
TObject** GetObjectRef(const TObject *obj) const
return address of pointer obj
TObject* Last() const
Return the last object in the collection. Returns 0 when collection
is empty.
Bool_t IllegalIndex(const char *method, Int_t idx) const
Return true when index out of bounds and print error.
Int_t IndexOf(const TObject *obj) const
Return index of object in collection. Returns -1 when object not found.
Uses member IsEqual() to find object.
void Init(Int_t capacity)
Initialize ordered collection.
TIterator* MakeIterator(Bool_t dir) const
Return an ordered collection iterator.
void MoveGapTo(Int_t start)
Move gap to new position. Gap needs to be moved when objects are
inserted not at the end.
void PutAt(TObject *obj, Int_t idx)
Put object at index idx. Overwrites what was at idx before.
TObject* RemoveAt(Int_t idx)
Remove object at index idx.
TObject* Remove(TObject *obj)
Remove object from collection.
void SetCapacity(Int_t newCapacity)
Set/change ordered collection capacity.
void Sort()
If objects in collection are sortable (i.e. IsSortable() returns true
for all objects) then sort collection.
Int_t BinarySearch(TObject *obj)
Find object using a binary search. Collection must first have been
sorted.
Inline Functions
Int_t PhysIndex(Int_t idx) const
Int_t LogIndex(Int_t idx) const
Bool_t LowWaterMark() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Fons Rademakers 13/09/95
Last update: root/cont:$Name: $:$Id: TOrdCollection.cxx,v 1.10 2002/11/15 13:26:29 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
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.