# FoundationClasses
TKernel
NCollection

# FoundationClasses
TKernel
NCollection

# NCollection_DoubleMap< TheKey1Type, TheKey2Type > Class Template Reference

`#include <NCollection_DoubleMap.hxx>`

Inheritance diagram for NCollection_DoubleMap< TheKey1Type, TheKey2Type >:

[legend]

## Public Member Functions

| NCollection_DoubleMap (const Standard_Integer NbBuckets=1, const Handle(NCollection_BaseAllocator)&theAllocator=0L)
| Constructor.
| NCollection_DoubleMap (const NCollection_DoubleMap &theOther)
| Copy constructor.
virtual void | Assign (const NCollection_BaseCollection< TheKey2Type > &theOther)
| Assign another collection.
NCollection_DoubleMap & | operator= (const NCollection_DoubleMap &theOther)
| = another map
void | ReSize (const Standard_Integer N)
| ReSize.
void | Bind (const TheKey1Type &theKey1, const TheKey2Type &theKey2)
| Bind.
Standard_Boolean | AreBound (const TheKey1Type &theKey1, const TheKey2Type &theKey2) const
| * AreBound
Standard_Boolean | IsBound1 (const TheKey1Type &theKey1) const
| IsBound1.
Standard_Boolean | IsBound2 (const TheKey2Type &theKey2) const
| IsBound2.
Standard_Boolean | UnBind1 (const TheKey1Type &theKey1)
| UnBind1.
Standard_Boolean | UnBind2 (const TheKey2Type &theKey2)
| UnBind2.
const TheKey2Type & | Find1 (const TheKey1Type &theKey1) const
| Find1.
const TheKey1Type & | Find2 (const TheKey2Type &theKey2) const
| Find2.
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_DoubleMap (void)
| Destructor.
virtual Standard_Integer | Size (void) const
| Size.

## Private Member Functions

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

## Data Structures

class | DoubleMapNode
class | Iterator

## Detailed Description

### template<class TheKey1Type, class TheKey2Type>
class NCollection_DoubleMap< TheKey1Type, TheKey2Type >

Purpose: The DoubleMap is used to bind pairs (Key1,Key2) and retrieve them in linear time.

See Map from NCollection for a discussion about the number of buckets

## Constructor & Destructor Documentation

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

template<class TheKey1Type, class TheKey2Type>
NCollection_DoubleMap< TheKey1Type, TheKey2Type >::NCollection_DoubleMap | ( | const NCollection_DoubleMap< TheKey1Type, TheKey2Type > & | theOther | ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
NCollection_DoubleMap< TheKey1Type, TheKey2Type >::~NCollection_DoubleMap | ( | void |  | ) | `[inline]`

## Member Function Documentation

template<class TheKey1Type, class TheKey2Type>
Standard_Boolean NCollection_DoubleMap< TheKey1Type, TheKey2Type >::AreBound | ( | const TheKey1Type & | theKey1,
|  | const TheKey2Type & | theKey2
| ) | const`[inline]`

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

template<class TheKey1Type, class TheKey2Type>
void NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Bind | ( | const TheKey1Type & | theKey1,
|  | const TheKey2Type & | theKey2
| ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
void NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Clear | ( | const Handle(NCollection_BaseAllocator)& | theAllocator | ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
void NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Clear | ( | const Standard_Boolean | doReleaseMemory = `Standard_True` | ) | `[inline]`

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

| Implements NCollection_BaseCollection< TheKey2Type >.

template<class TheKey1Type, class TheKey2Type>
const TheKey2Type& NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Find1 | ( | const TheKey1Type & | theKey1 | ) | const`[inline]`

template<class TheKey1Type, class TheKey2Type>
const TheKey1Type& NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Find2 | ( | const TheKey2Type & | theKey2 | ) | const`[inline]`

template<class TheKey1Type, class TheKey2Type>
Standard_Boolean NCollection_DoubleMap< TheKey1Type, TheKey2Type >::IsBound1 | ( | const TheKey1Type & | theKey1 | ) | const`[inline]`

template<class TheKey1Type, class TheKey2Type>
Standard_Boolean NCollection_DoubleMap< TheKey1Type, TheKey2Type >::IsBound2 | ( | const TheKey2Type & | theKey2 | ) | const`[inline]`

template<class TheKey1Type, class TheKey2Type>
NCollection_DoubleMap& NCollection_DoubleMap< TheKey1Type, TheKey2Type >::operator= | ( | const NCollection_DoubleMap< TheKey1Type, TheKey2Type > & | theOther | ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
void NCollection_DoubleMap< TheKey1Type, TheKey2Type >::ReSize | ( | const Standard_Integer | N | ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
virtual Standard_Integer NCollection_DoubleMap< TheKey1Type, TheKey2Type >::Size | ( | void |  | ) | const`[inline, virtual]`

| Implements NCollection_BaseCollection< TheKey2Type >.

template<class TheKey1Type, class TheKey2Type>
Standard_Boolean NCollection_DoubleMap< TheKey1Type, TheKey2Type >::UnBind1 | ( | const TheKey1Type & | theKey1 | ) | `[inline]`

template<class TheKey1Type, class TheKey2Type>
Standard_Boolean NCollection_DoubleMap< TheKey1Type, TheKey2Type >::UnBind2 | ( | const TheKey2Type & | theKey2 | ) | `[inline]`

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

- NCollection_DoubleMap.hxx