Coin: SbDict Class Reference

| Coin3D is Free Software, published under the BSD 3-clause license. | https://coin3d.github.io https://www.kongsberg.com/en/kogt/

SbDict Class Reference
Base Classes

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

`#include <Inventor/SbDict.h>`

## Public Types
typedef uintptr_t | Key

## Public Member Functions
| SbDict (const int entries=251)
| SbDict (const SbDict &from)
| ~SbDict ()
SbDict & | operator= (const SbDict &from)
void | applyToAll (SbDictApplyFunc *rtn) const
void | applyToAll (SbDictApplyDataFunc *rtn, void *data) const
void | clear (void)
SbBool | enter (const Key key, void *const value)
SbBool | find (const Key key, void *&value) const
void | makePList (SbPList &keys, SbPList &values)
SbBool | remove (const Key key)
void | setHashingFunction (SbDictHashingFunc *func)

## 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() [1/2]

SbDict::SbDict | ( | const int | entries = 251 | ) |

Constructor with entries specifying the initial number of buckets in the hash list – so it need to be larger than 0. Other than this, no special care needs to be taken in choosing the value since it is always rounded up to the nearest power of two.

## ◆ SbDict() [2/2]

SbDict::SbDict | ( | const SbDict & | from | ) |

Copy constructor.

## ◆ ~SbDict()

SbDict::~SbDict | ( |  | ) |

Destructor.

## Member Function Documentation

## ◆ operator=()

SbDict & SbDict::operator= | ( | const SbDict & | from | ) |

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

## ◆ applyToAll() [1/2]

void SbDict::applyToAll | ( | SbDictApplyFunc * | rtn | ) | const

Applies rtn to all entries in the dictionary.

## ◆ applyToAll() [2/2]

void SbDict::applyToAll | ( | SbDictApplyDataFunc * | rtn,
|  | 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.

## ◆ clear()

void SbDict::clear | ( | void |  | ) |

Clear all entries in the dictionary.

## ◆ enter()

SbBool SbDict::enter | ( | const Key | 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.

## ◆ find()

SbBool SbDict::find | ( | const Key | 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.

## ◆ makePList()

void SbDict::makePList | ( | SbPList & | keys,
|  | SbPList & | values )

Creates lists with all entries in the dictionary.

## ◆ remove()

SbBool SbDict::remove | ( | const Key | key | ) |

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

## ◆ setHashingFunction()

void SbDict::setHashingFunction | ( | SbDictHashingFunc * | func | ) |

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 SbDict::Key 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