Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

SbDict Class Reference

The SbDict class organizes a dictionary of keys and values. More...

#include <Inventor/SbDict.h>

List of all members.

Public Methods

 SbDict (const int entries=251)
 SbDict (const SbDict &from)
 ~SbDict ()
SbDict & operator= (const SbDict &from)
void applyToAll (void(*rtn)(unsigned long key, void *value)) const
void applyToAll (void(*rtn)(unsigned long key, void *value, void *data), void *data) const
void clear (void)
SbBool enter (const unsigned long key, void *const value)
SbBool find (const unsigned long key, void *&value) const
void makePList (SbPList &keys, SbPList &values)
SbBool remove (const unsigned long key)
void setHashingFunction (unsigned long(*func)(const unsigned long key))


Detailed Description

The SbDict class organizes a dictionary of keys and values.

It uses hashing to quickly insert and find entries in the dictionary. An entry consists of an unique key and a generic pointer.


Constructor & Destructor Documentation

SbDict::SbDict const int entries = 251
 

Constructor with entries specifying the number of buckets in the hash list -- so it need to be larger than 0. For best performance during dictionary look-ups, entries should be a prime.

SbDict::SbDict const SbDict & from
 

Copy constructor.

SbDict::~SbDict
 

Destructor.


Member Function Documentation

SbDict & SbDict::operator= const SbDict & from
 

Make a deep copy of the contents of dictionary from into this dictionary.

void SbDict::applyToAll void(* rtn)(unsigned long key, void *value) const
 

Applies rtn to all entries in the dictionary.

void SbDict::applyToAll void(* rtn)(unsigned long key, void *value, void *data),
void * data
const
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

void SbDict::clear void
 

Clear all entries in the dictionary.

SbBool SbDict::enter const unsigned long key,
void *const value
 

Inserts a new entry into the dictionary. key should be a unique number, and value is the generic user data.

If key does not exist in the dictionary, a new entry is created and TRUE is returned. Otherwise, the generic user data is changed to value, and FALSE is returned.

SbBool SbDict::find const unsigned long key,
void *& value
const
 

Searches for key in the dictionary. If an entry with this key exists, TRUE is returned and the entry value is returned in value. Otherwise, FALSE is returned.

void SbDict::makePList SbPList & keys,
SbPList & values
 

Creates lists with all entries in the dictionary.

SbBool SbDict::remove const unsigned long key
 

Removes the entry with key key. TRUE is returned if an entry with this key was present, FALSE otherwise.

void SbDict::setHashingFunction unsigned long(* func)(const unsigned long key)
 

Sets a new hashing function for this dictionary. Default hashing function just returns the key.

If you find that items entered into the dictionary seems to make clusters in only a few buckets, you should try setting a hashing function. If you're for instance using strings, you could use the static SbString::hash() function (you'd need to make a static function that will cast from unsigned long to char * of course).

This function is not part of the OIV API.


The documentation for this class was generated from the following files:
Generated at Tue Mar 5 03:31:23 2002 for Coin by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001