Open CASCADE Technology 7.8.0
|
#include <NCollection_IndexedDataMap.hxx>
Data Structures | |
class | Iterator |
Implementation of the Iterator interface. More... | |
Public Types | |
typedef TheKeyType | key_type |
STL-compliant typedef for key type. | |
typedef TheItemType | value_type |
STL-compliant typedef for value type. | |
typedef Hasher | hasher |
typedef NCollection_StlIterator< std::forward_iterator_tag, Iterator, TheItemType, false > | iterator |
Shorthand for a regular iterator type. | |
typedef NCollection_StlIterator< std::forward_iterator_tag, Iterator, TheItemType, true > | const_iterator |
Shorthand for a constant iterator type. | |
Public Member Functions | |
iterator | begin () const |
Returns an iterator pointing to the first element in the map. | |
iterator | end () const |
Returns an iterator referring to the past-the-end element in the map. | |
const_iterator | cbegin () const |
Returns a const iterator pointing to the first element in the map. | |
const_iterator | cend () const |
Returns a const iterator referring to the past-the-end element in the map. | |
NCollection_IndexedDataMap () | |
Empty constructor. | |
NCollection_IndexedDataMap (const Standard_Integer theNbBuckets, const Handle< NCollection_BaseAllocator > &theAllocator=0L) | |
Constructor. | |
NCollection_IndexedDataMap (const NCollection_IndexedDataMap &theOther) | |
Copy constructor. | |
NCollection_IndexedDataMap (NCollection_IndexedDataMap &&theOther) noexcept | |
Move constructor. | |
void | Exchange (NCollection_IndexedDataMap &theOther) |
Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well! | |
NCollection_IndexedDataMap & | Assign (const NCollection_IndexedDataMap &theOther) |
Assignment. This method does not change the internal allocator. | |
NCollection_IndexedDataMap & | operator= (const NCollection_IndexedDataMap &theOther) |
Assignment operator. | |
NCollection_IndexedDataMap & | operator= (NCollection_IndexedDataMap &&theOther) noexcept |
Move operator. | |
void | ReSize (const Standard_Integer N) |
ReSize. | |
Standard_Integer | Add (const TheKeyType &theKey1, const TheItemType &theItem) |
Returns the Index of already bound Key or appends new Key with specified Item value. | |
Standard_Integer | Add (TheKeyType &&theKey1, const TheItemType &theItem) |
Returns the Index of already bound Key or appends new Key with specified Item value. | |
Standard_Integer | Add (const TheKeyType &theKey1, TheItemType &&theItem) |
Returns the Index of already bound Key or appends new Key with specified Item value. | |
Standard_Integer | Add (TheKeyType &&theKey1, TheItemType &&theItem) |
Returns the Index of already bound Key or appends new Key with specified Item value. | |
Standard_Boolean | Contains (const TheKeyType &theKey1) const |
Contains. | |
void | Substitute (const Standard_Integer theIndex, const TheKeyType &theKey1, const TheItemType &theItem) |
Substitute. | |
void | Swap (const Standard_Integer theIndex1, const Standard_Integer theIndex2) |
Swaps two elements with the given indices. | |
void | RemoveLast (void) |
RemoveLast. | |
void | RemoveFromIndex (const Standard_Integer theIndex) |
Remove the key of the given index. Caution! The index of the last key can be changed. | |
void | RemoveKey (const TheKeyType &theKey1) |
Remove the given key. Caution! The index of the last key can be changed. | |
const TheKeyType & | FindKey (const Standard_Integer theIndex) const |
FindKey. | |
const TheItemType & | FindFromIndex (const Standard_Integer theIndex) const |
FindFromIndex. | |
const TheItemType & | operator() (const Standard_Integer theIndex) const |
operator () | |
TheItemType & | ChangeFromIndex (const Standard_Integer theIndex) |
ChangeFromIndex. | |
TheItemType & | operator() (const Standard_Integer theIndex) |
operator () | |
Standard_Integer | FindIndex (const TheKeyType &theKey1) const |
FindIndex. | |
const TheItemType & | FindFromKey (const TheKeyType &theKey1) const |
FindFromKey. | |
TheItemType & | ChangeFromKey (const TheKeyType &theKey1) |
ChangeFromKey. | |
const TheItemType * | Seek (const TheKeyType &theKey1) const |
Seek returns pointer to Item by Key. Returns NULL if Key was not found. | |
TheItemType * | ChangeSeek (const TheKeyType &theKey1) |
ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found. | |
Standard_Boolean | FindFromKey (const TheKeyType &theKey1, TheItemType &theValue) const |
Find value for key with copying. | |
void | Clear (const Standard_Boolean doReleaseMemory=Standard_False) |
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. | |
virtual | ~NCollection_IndexedDataMap (void) |
Destructor. | |
Standard_Integer | Size (void) const |
Size. | |
Public Member Functions inherited from NCollection_BaseMap | |
Standard_Integer | NbBuckets () const |
NbBuckets. | |
Standard_Integer | Extent () const |
Extent. | |
Standard_Boolean | IsEmpty () const |
IsEmpty. | |
void | Statistics (Standard_OStream &S) const |
Statistics. | |
const Handle< NCollection_BaseAllocator > & | Allocator () const |
Returns attached allocator. | |
Protected Attributes | |
Hasher | myHasher |
Protected Attributes inherited from NCollection_BaseMap | |
Handle< NCollection_BaseAllocator > | myAllocator |
NCollection_ListNode ** | myData1 |
NCollection_ListNode ** | myData2 |
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. An Item is stored with each key.
This class is similar to IndexedMap from NCollection with the Item as a new feature. Note the important difference on the operator (). In the IndexedMap this operator returns the Key. In the IndexedDataMap this operator returns the Item.
See the class Map from NCollection for a discussion about the number of buckets.
typedef NCollection_StlIterator<std::forward_iterator_tag, Iterator, TheItemType, true> NCollection_IndexedDataMap< TheKeyType, TheItemType, Hasher >::const_iterator |
Shorthand for a constant iterator type.
typedef Hasher NCollection_IndexedDataMap< TheKeyType, TheItemType, Hasher >::hasher |
typedef NCollection_StlIterator<std::forward_iterator_tag, Iterator, TheItemType, false> NCollection_IndexedDataMap< TheKeyType, TheItemType, Hasher >::iterator |
Shorthand for a regular iterator type.
typedef TheKeyType NCollection_IndexedDataMap< TheKeyType, TheItemType, Hasher >::key_type |
STL-compliant typedef for key type.
typedef TheItemType NCollection_IndexedDataMap< TheKeyType, TheItemType, Hasher >::value_type |
STL-compliant typedef for value type.
|
inline |
Empty constructor.
|
inlineexplicit |
Constructor.
|
inline |
Copy constructor.
|
inlinenoexcept |
Move constructor.
|
inlinevirtual |
Destructor.
|
inline |
Returns the Index of already bound Key or appends new Key with specified Item value.
theKey1 | Key to search (and to bind, if it was not bound already) |
theItem | Item value to set for newly bound Key; ignored if Key was already bound |
|
inline |
Returns the Index of already bound Key or appends new Key with specified Item value.
theKey1 | Key to search (and to bind, if it was not bound already) |
theItem | Item value to set for newly bound Key; ignored if Key was already bound |
|
inline |
Returns the Index of already bound Key or appends new Key with specified Item value.
theKey1 | Key to search (and to bind, if it was not bound already) |
theItem | Item value to set for newly bound Key; ignored if Key was already bound |
|
inline |
Returns the Index of already bound Key or appends new Key with specified Item value.
theKey1 | Key to search (and to bind, if it was not bound already) |
theItem | Item value to set for newly bound Key; ignored if Key was already bound |
|
inline |
Assignment. This method does not change the internal allocator.
|
inline |
Returns an iterator pointing to the first element in the map.
|
inline |
Returns a const iterator pointing to the first element in the map.
|
inline |
Returns a const iterator referring to the past-the-end element in the map.
|
inline |
ChangeFromIndex.
|
inline |
ChangeFromKey.
|
inline |
ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.
|
inline |
Clear data and reset allocator.
|
inline |
Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.
|
inline |
Contains.
|
inline |
Returns an iterator referring to the past-the-end element in the map.
|
inline |
Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!
|
inline |
FindFromIndex.
|
inline |
FindFromKey.
|
inline |
Find value for key with copying.
|
inline |
FindIndex.
|
inline |
FindKey.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
Lookup for particular key in map.
[in] | theKey | key to compute hash |
[out] | theNode | the detected node with equal key. Can be null. |
|
inlineprotected |
Lookup for particular key in map.
[in] | theKey | key to compute hash |
[out] | theNode | the detected node with equal key. Can be null. |
[out] | theHash | computed bounded hash code for current key. |
|
inline |
operator ()
|
inline |
operator ()
|
inline |
Assignment operator.
|
inlinenoexcept |
Move operator.
|
inline |
Remove the key of the given index. Caution! The index of the last key can be changed.
|
inline |
Remove the given key. Caution! The index of the last key can be changed.
|
inline |
RemoveLast.
|
inline |
ReSize.
|
inline |
Seek returns pointer to Item by Key. Returns NULL if Key was not found.
|
inline |
Size.
|
inline |
Substitute.
|
inline |
Swaps two elements with the given indices.
|
protected |