Loading...
Searching...
No Matches
irr::core::map< KeyType, ValueType > Class Template Reference

map template for associative arrays using a red-black tree More...

`#include <irrMap.h>`

## Classes

class | AccessClass
class | ConstIterator
| Const Iterator. More...
class | Iterator
| Normal Iterator. More...
class | ParentFirstIterator
| Parent First Iterator. More...
class | ParentLastIterator
| Parent Last Iterator. More...

## Public Types

typedef RBTree< KeyType, ValueType > | Node

## Public Member Functions

| map ()
| ~map ()
void | clear ()
| Clear the entire tree.
Node * | delink (const KeyType &k)
| Removes a node from the tree and returns it.
bool | empty () const
Node * | find (const KeyType &keyToFind) const
ConstIterator | getConstIterator () const
| Returns a Constiterator.
Iterator | getIterator () const
| Returns an iterator.
ParentFirstIterator | getParentFirstIterator () const
ParentLastIterator | getParentLastIterator () const
Node * | getRoot () const
bool | insert (const KeyType &keyNew, const ValueType &v)
| Inserts a new node into the tree.
_IRR_DEPRECATED_ bool | isEmpty () const
AccessClass | operator[] (const KeyType &k)
| operator [] for access to elements
bool | remove (const KeyType &k)
| Removes a node from the tree and deletes it.
bool | remove (Node *p)
| Removes a node from the tree and deletes it.
void | set (const KeyType &k, const ValueType &v)
| Replaces the value if the key already exists, otherwise inserts a new element.
u32 | size () const
| Returns the number of nodes in the tree.
void | swap (map< KeyType, ValueType > &other)
| Swap the content of this map container with the content of another map.

## Detailed Description

template<class KeyType, class ValueType>
class irr::core::map< KeyType, ValueType >

map template for associative arrays using a red-black tree

Definition at line 18 of file irrMap.h.

## Member Typedef Documentation

## Node

template<class KeyType, class ValueType>

typedef RBTree<KeyType,ValueType> irr::core::map< KeyType, ValueType >::Node

Definition at line 134 of file irrMap.h.

## Constructor & Destructor Documentation

## map()

template<class KeyType, class ValueType>

irr::core::map< KeyType, ValueType >::map | ( |  | ) |

inline

Definition at line 673 of file irrMap.h.

Referenced by swap().

## ~map()

template<class KeyType, class ValueType>

irr::core::map< KeyType, ValueType >::~map | ( |  | ) |

inline

Definition at line 676 of file irrMap.h.

References clear().

## Member Function Documentation

## clear()

template<class KeyType, class ValueType>

void irr::core::map< KeyType, ValueType >::clear | ( |  | ) |

inline

Clear the entire tree.

Definition at line 872 of file irrMap.h.

References irr::core::map< KeyType, ValueType >::ParentLastIterator::atEnd(), irr::core::map< KeyType, ValueType >::ParentLastIterator::getNode(), and getParentLastIterator().

Referenced by ~map().

## delink()

template<class KeyType, class ValueType>

Node * irr::core::map< KeyType, ValueType >::delink | ( | const KeyType & | k | ) |

inline

Removes a node from the tree and returns it.

The returned node must be deleted by the user

Parameters

  k | the key to remove

Returns
  A pointer to the node, or 0 if not found

Definition at line 784 of file irrMap.h.

References find().

## empty()

template<class KeyType, class ValueType>

bool irr::core::map< KeyType, ValueType >::empty | ( |  | ) | const

inline

Is the tree empty?

Returns
  Returns true if empty, false if not

Definition at line 889 of file irrMap.h.

References _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX.

Referenced by isEmpty().

## find()

template<class KeyType, class ValueType>

Node * irr::core::map< KeyType, ValueType >::find | ( | const KeyType & | keyToFind | ) | const

inline

Search for a node with the specified key.

Parameters

  keyToFind | The key to find

Returns
  Returns 0 if node couldn't be found.

Definition at line 904 of file irrMap.h.

Referenced by delink(), remove(), and set().

## getConstIterator()

template<class KeyType, class ValueType>

ConstIterator irr::core::map< KeyType, ValueType >::getConstIterator | ( |  | ) | const

inline

Returns a Constiterator.

Definition at line 960 of file irrMap.h.

References getRoot().

## getIterator()

template<class KeyType, class ValueType>

Iterator irr::core::map< KeyType, ValueType >::getIterator | ( |  | ) | const

inline

Returns an iterator.

Definition at line 953 of file irrMap.h.

References getRoot().

## getParentFirstIterator()

template<class KeyType, class ValueType>

ParentFirstIterator irr::core::map< KeyType, ValueType >::getParentFirstIterator | ( |  | ) | const

inline

Returns a ParentFirstIterator. Traverses the tree from top to bottom. Typical usage is when storing the tree structure, because when reading it later (and inserting elements) the tree structure will be the same.

Definition at line 971 of file irrMap.h.

References getRoot().

## getParentLastIterator()

template<class KeyType, class ValueType>

ParentLastIterator irr::core::map< KeyType, ValueType >::getParentLastIterator | ( |  | ) | const

inline

Returns a ParentLastIterator to traverse the tree from bottom to top. Typical usage is when deleting all elements in the tree because you must delete the children before you delete their parent.

Definition at line 982 of file irrMap.h.

References getRoot().

Referenced by clear().

## getRoot()

template<class KeyType, class ValueType>

Node * irr::core::map< KeyType, ValueType >::getRoot | ( |  | ) | const

inline

Gets the root element.

Returns
  Returns a pointer to the root node, or 0 if the tree is empty.

Definition at line 926 of file irrMap.h.

Referenced by getConstIterator(), getIterator(), getParentFirstIterator(), and getParentLastIterator().

## insert()

template<class KeyType, class ValueType>

bool irr::core::map< KeyType, ValueType >::insert | ( | const KeyType & | keyNew,
|  | const ValueType & | v )

inline

Inserts a new node into the tree.

Parameters

  keyNew | the index for this value
  v | the value to insert

Returns
  True if successful, false if it fails (already exists)

Definition at line 689 of file irrMap.h.

References _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX, and insert().

Referenced by insert(), and set().

## isEmpty()

template<class KeyType, class ValueType>

_IRR_DEPRECATED_ bool irr::core::map< KeyType, ValueType >::isEmpty | ( |  | ) | const

inline

Deprecated
  Use empty() instead. This method may be removed by Irrlicht 1.9

Definition at line 896 of file irrMap.h.

References _IRR_DEPRECATED_, and empty().

## operator[]()

template<class KeyType, class ValueType>

AccessClass irr::core::map< KeyType, ValueType >::operator[] | ( | const KeyType & | k | ) |

inline

operator [] for access to elements

for example myMap["key"]

Definition at line 994 of file irrMap.h.

## remove() [1/2]

template<class KeyType, class ValueType>

bool irr::core::map< KeyType, ValueType >::remove | ( | const KeyType & | k | ) |

inline

Removes a node from the tree and deletes it.

Returns
  True if the node was found and deleted

Definition at line 823 of file irrMap.h.

References find(), and remove().

Referenced by remove().

## remove() [2/2]

template<class KeyType, class ValueType>

bool irr::core::map< KeyType, ValueType >::remove | ( | Node * | p | ) |

inline

Removes a node from the tree and deletes it.

Returns
  True if the node was found and deleted

Definition at line 831 of file irrMap.h.

References _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX.

## set()

template<class KeyType, class ValueType>

void irr::core::map< KeyType, ValueType >::set | ( | const KeyType & | k,
|  | const ValueType & | v )

inline

Replaces the value if the key already exists, otherwise inserts a new element.

Parameters

  k | The index for this value
  v | The new value of

Definition at line 771 of file irrMap.h.

References find(), and insert().

## size()

template<class KeyType, class ValueType>

u32 irr::core::map< KeyType, ValueType >::size | ( |  | ) | const

inline

Returns the number of nodes in the tree.

Definition at line 932 of file irrMap.h.

## swap()

template<class KeyType, class ValueType>

void irr::core::map< KeyType, ValueType >::swap | ( | map< KeyType, ValueType > & | other | ) |

inline

Swap the content of this map container with the content of another map.

Afterwards this object will contain the content of the other object and the other object will contain the content of this object. Iterators will afterwards be valid for the swapped object.

Parameters

  other | Swap content with this object

Definition at line 942 of file irrMap.h.

References map(), and irr::core::swap().

The documentation for this class was generated from the following file:

- irrMap.h

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0