# SbDict Class Reference
[Base classes]

`#include <Inventor/SbDict.h>`

List of all members.

## 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.

## Public Member Functions

| 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))

## 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:

- SbDict.h
- SbDict.cpp