# FoundationClasses
TKernel
NCollection

# FoundationClasses
TKernel
NCollection

# NCollection_IndexedMap< TheKeyType > Class Template Reference

`#include <NCollection_IndexedMap.hxx>`

Inheritance diagram for NCollection_IndexedMap< TheKeyType >:

[legend]

## Public Member Functions

| NCollection_IndexedMap (const Standard_Integer NbBuckets=1, const Handle(NCollection_BaseAllocator)&theAllocator=0L)
| Constructor.
| NCollection_IndexedMap (const NCollection_IndexedMap &theOther)
| Copy constructor.
virtual void | Assign (const NCollection_BaseCollection< TheKeyType > &theOther)
| Assign another collection.
NCollection_IndexedMap & | operator= (const NCollection_IndexedMap &theOther)
| = another map
void | ReSize (const Standard_Integer N)
| ReSize.
Standard_Integer | Add (const TheKeyType &theKey1)
| Add.
Standard_Boolean | Contains (const TheKeyType &theKey1) const
| Contains.
void | Substitute (const Standard_Integer theIndex, const TheKeyType &theKey1)
| Substitute.
void | RemoveLast (void)
| RemoveLast.
const TheKeyType & | FindKey (const Standard_Integer theKey2) const
| FindKey.
const TheKeyType & | operator() (const Standard_Integer theKey2) const
| operator ()
Standard_Integer | FindIndex (const TheKeyType &theKey1) const
| FindIndex.
void | Clear (const Standard_Boolean doReleaseMemory=Standard_True)
| Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.
void | Clear (const Handle(NCollection_BaseAllocator)&theAllocator)
| Clear data and reset allocator.
| ~NCollection_IndexedMap (void)
| Destructor.
virtual Standard_Integer | Size (void) const
| Size.

## Private Member Functions

virtual TYPENAME NCollection_BaseCollection< TheKeyType >::Iterator & | CreateIterator (void) const
| Creates Iterator for use on BaseCollection.

## Data Structures

class | IndexedMapNode
class | Iterator

## Detailed Description

### template<class TheKeyType>
class NCollection_IndexedMap< TheKeyType >

Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1..Extent. See the class Map from NCollection for a discussion about the number of buckets.

## Constructor & Destructor Documentation

template<class TheKeyType>
NCollection_IndexedMap< TheKeyType >::NCollection_IndexedMap | ( | const Standard_Integer | NbBuckets = `1`,
|  | const Handle(NCollection_BaseAllocator)& | theAllocator = `0L`
| ) | `[inline]`

template<class TheKeyType>
NCollection_IndexedMap< TheKeyType >::NCollection_IndexedMap | ( | const NCollection_IndexedMap< TheKeyType > & | theOther | ) | `[inline]`

template<class TheKeyType>
NCollection_IndexedMap< TheKeyType >::~NCollection_IndexedMap | ( | void |  | ) | `[inline]`

## Member Function Documentation

template<class TheKeyType>
Standard_Integer NCollection_IndexedMap< TheKeyType >::Add | ( | const TheKeyType & | theKey1 | ) | `[inline]`

template<class TheKeyType>
virtual void NCollection_IndexedMap< TheKeyType >::Assign | ( | const NCollection_BaseCollection< TheKeyType > & | theOther | ) | `[inline, virtual]`

template<class TheKeyType>
void NCollection_IndexedMap< TheKeyType >::Clear | ( | const Handle(NCollection_BaseAllocator)& | theAllocator | ) | `[inline]`

template<class TheKeyType>
void NCollection_IndexedMap< TheKeyType >::Clear | ( | const Standard_Boolean | doReleaseMemory = `Standard_True` | ) | `[inline]`

template<class TheKeyType>
Standard_Boolean NCollection_IndexedMap< TheKeyType >::Contains | ( | const TheKeyType & | theKey1 | ) | const`[inline]`

template<class TheKeyType>
virtual TYPENAME NCollection_BaseCollection<TheKeyType>::Iterator& NCollection_IndexedMap< TheKeyType >::CreateIterator | ( | void |  | ) | const`[inline, private, virtual]`

| Implements NCollection_BaseCollection< TheKeyType >.

template<class TheKeyType>
Standard_Integer NCollection_IndexedMap< TheKeyType >::FindIndex | ( | const TheKeyType & | theKey1 | ) | const`[inline]`

template<class TheKeyType>
const TheKeyType& NCollection_IndexedMap< TheKeyType >::FindKey | ( | const Standard_Integer | theKey2 | ) | const`[inline]`

template<class TheKeyType>
const TheKeyType& NCollection_IndexedMap< TheKeyType >::operator() | ( | const Standard_Integer | theKey2 | ) | const`[inline]`

template<class TheKeyType>
NCollection_IndexedMap& NCollection_IndexedMap< TheKeyType >::operator= | ( | const NCollection_IndexedMap< TheKeyType > & | theOther | ) | `[inline]`

template<class TheKeyType>
void NCollection_IndexedMap< TheKeyType >::RemoveLast | ( | void |  | ) | `[inline]`

template<class TheKeyType>
void NCollection_IndexedMap< TheKeyType >::ReSize | ( | const Standard_Integer | N | ) | `[inline]`

template<class TheKeyType>
virtual Standard_Integer NCollection_IndexedMap< TheKeyType >::Size | ( | void |  | ) | const`[inline, virtual]`

| Implements NCollection_BaseCollection< TheKeyType >.

template<class TheKeyType>
void NCollection_IndexedMap< TheKeyType >::Substitute | ( | const Standard_Integer | theIndex,
|  | const TheKeyType & | theKey1
| ) | `[inline]`

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

- NCollection_IndexedMap.hxx