TMap
class description - source file - inheritance tree
public:
TMap TMap(Int_t capacity = TCollection::kInitHashTableCapacity, Int_t rehash = 0)
virtual void ~TMap()
virtual void Add(TObject* obj)
void Add(TObject* key, TObject* value)
Float_t AverageCollisions() const
Int_t Capacity() const
static TClass* Class()
virtual void Clear(Option_t* option)
Int_t Collisions(const char* keyname) const
Int_t Collisions(TObject* key) const
virtual void Delete(Option_t* option)
void DeleteAll()
virtual TObject* FindObject(const char* keyname) const
virtual TObject* FindObject(const TObject* key) const
TObject* GetValue(TObject* key) const
virtual TClass* IsA() const
virtual TIterator* MakeIterator(Bool_t dir = kIterForward) const
void Rehash(Int_t newCapacity, Bool_t checkObjValidity = kTRUE)
virtual TObject* Remove(TObject* key)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
THashTable* fTable Hash table used to store TAssociation's
TMap
TMap implements an associative array of (key,value) pairs using a
THashTable for efficient retrieval (therefore TMap does not conserve
the order of the entries). The hash value is calculated
using the value returned by the keys Hash() function. Both key and
value need to inherit from TObject.
/*
*/
TMap(Int_t capacity, Int_t rehashlevel)
TMap ctor. See THashTable for a description of the arguments.
~TMap()
TMap dtor. Objects are not deleted unless the TMap is the
owner (set via SetOwner()).
void Add(TObject *)
This function may not be used (but we need to provide it since it is
a pure virtual in TCollection). Use Add(key,value) instead.
void Add(TObject *key, TObject *value)
Add a (key,value) pair to the map.
Float_t AverageCollisions() const
Return the ratio of entries vs occupied slots.
Int_t Capacity() const
Return number of slots in the hashtable. Use GetSize() to get the
number of objects stored in the TMap.
void Clear(Option_t *option)
Remove all (key,value) pairs from the map but DO NOT delete the keys
and/or values. Objects are not deleted unless the TMap is the
owner (set via SetOwner()).
Int_t Collisions(const char *keyname) const
Returns the number of collisions for a key with a certain name
(i.e. number of objects in same slot in the hash table, i.e. length
of linked list).
Int_t Collisions(TObject *key) const
Returns the number of collisions for a key (i.e. number of objects
in same slot in the hash table, i.e. length of linked list).
void Delete(Option_t *option)
Remove all (key,value) pairs from the map AND delete the keys
when they are allocated on the heap.
void DeleteAll()
Remove all (key,value) pairs from the map AND delete the keys AND
values when they are allocated on the heap.
TObject* FindObject(const char *keyname) const
Check if a (key,value) pair exists with keyname as name of the key.
Returns a TAssoc* (need to downcast from TObject). Use Key() and
Value() to get the pointers to the key and value, respectively.
Returns 0 if not found.
TObject* FindObject(const TObject *key) const
Check if a (key,value) pair exists with key as key.
Returns a TAssoc* (need to downcast from TObject). Use Key() and
Value() to get the pointers to the key and value, respectively.
Returns 0 if not found.
TObject* GetValue(TObject *key) const
Returns a pointer to the value associated with key.
TIterator* MakeIterator(Bool_t dir) const
Create an iterator for TMap.
void Rehash(Int_t newCapacity, Bool_t checkObjValidity)
Rehash the underlaying THashTable (see THashTable::Rehash()).
TObject* Remove(TObject *key)
Remove the (key,value) pair with key from the map.
void Streamer(TBuffer &b)
Stream all key/value pairs in the map to or from the I/O buffer.
Inline Functions
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void StreamerNVirtual(TBuffer& b)
Author: Fons Rademakers 12/11/95
Last update: root/cont:$Name: $:$Id: TMap.cxx,v 1.4 2000/12/13 15:13:46 brun 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.