Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Data Structures | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
NCollection_OrderedMap< TheKeyType, Hasher > Class Template Reference

Hash set that preserves insertion order. More...

#include <NCollection_OrderedMap.hxx>

Inheritance diagram for NCollection_OrderedMap< TheKeyType, Hasher >:
Inheritance graph
[legend]

Data Structures

class  Iterator
 Implementation of the Iterator interface. Iterates in insertion order by walking the doubly-linked list. More...
 
class  OrderedMapNode
 Adaptation of the TListNode to the ordered map notations. Extends the hash-chain node with insertion-order linked list pointers. More...
 

Public Types

typedef TheKeyType key_type
 STL-compliant typedef for key type.
 
typedef Hasher hasher
 
typedef NCollection_StlIterator< std::forward_iterator_tag, Iterator, TheKeyType, trueconst_iterator
 Shorthand for a constant iterator type.
 
typedef const_iterator iterator
 Shorthand for iterator type (same as const_iterator for key-only maps).
 

Public Member Functions

iterator begin () const noexcept
 Returns an iterator pointing to the first element in the map.
 
iterator end () const noexcept
 Returns an iterator referring to the past-the-end element in the map.
 
const_iterator cbegin () const noexcept
 Returns a const iterator pointing to the first element in the map.
 
const_iterator cend () const noexcept
 Returns a const iterator referring to the past-the-end element in the map.
 
 NCollection_OrderedMap ()
 Empty constructor.
 
 NCollection_OrderedMap (const size_t theNbBuckets, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor.
 
 NCollection_OrderedMap (const int theNbBuckets, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor (legacy int-taking).
 
 NCollection_OrderedMap (const Hasher &theHasher, const size_t theNbBuckets=1, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor with custom hasher (copy).
 
 NCollection_OrderedMap (const Hasher &theHasher, const int theNbBuckets, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor with custom hasher (copy, legacy int-taking).
 
 NCollection_OrderedMap (Hasher &&theHasher, const size_t theNbBuckets=1, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor with custom hasher (move).
 
 NCollection_OrderedMap (Hasher &&theHasher, const int theNbBuckets, const occ::handle< NCollection_BaseAllocator > &theAllocator=nullptr)
 Constructor with custom hasher (move, legacy int-taking).
 
 NCollection_OrderedMap (const NCollection_OrderedMap &theOther)
 Copy constructor.
 
 NCollection_OrderedMap (NCollection_OrderedMap &&theOther) noexcept
 Move constructor.
 
void Exchange (NCollection_OrderedMap &theOther) noexcept
 Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!
 
const Hasher & GetHasher () const noexcept
 Returns const reference to the hasher.
 
NCollection_OrderedMapAssign (const NCollection_OrderedMap &theOther)
 Assign. This method does not change the internal allocator.
 
NCollection_OrderedMapoperator= (const NCollection_OrderedMap &theOther)
 Assign operator.
 
NCollection_OrderedMapoperator= (NCollection_OrderedMap &&theOther) noexcept
 Move operator.
 
void ReSize (const size_t N)
 ReSize.
 
void ReSize (const int N)
 
bool Add (const TheKeyType &theKey)
 Add.
 
bool Add (TheKeyType &&theKey)
 Add.
 
const TheKeyTypeAdded (const TheKeyType &theKey)
 Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object.
 
const TheKeyTypeAdded (TheKeyType &&theKey)
 Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object.
 
template<typename... Args>
bool Emplace (Args &&... theArgs)
 Emplace constructs key in-place; if key exists, destroys and reconstructs.
 
template<typename... Args>
const TheKeyTypeEmplaced (Args &&... theArgs)
 Emplaced constructs key in-place; if key exists, destroys and reconstructs.
 
template<typename... Args>
bool TryEmplace (Args &&... theArgs)
 TryEmplace constructs key in-place only if not already present.
 
template<typename... Args>
const TheKeyTypeTryEmplaced (Args &&... theArgs)
 TryEmplaced constructs key in-place only if not already present.
 
bool Contains (const TheKeyType &theKey) const
 Contains.
 
std::optional< std::reference_wrapper< const TheKeyType > > Contained (const TheKeyType &theKey) const
 Contained returns optional const reference to the key in the map. Returns std::nullopt if the key is not found.
 
bool Remove (const TheKeyType &K)
 Remove.
 
void Clear (const bool doReleaseMemory=false)
 Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.
 
void Clear (const occ::handle< NCollection_BaseAllocator > &theAllocator)
 Clear data and reset allocator.
 
 ~NCollection_OrderedMap () override
 Destructor.
 
const TheKeyTypeFirst () const
 Returns the first key in insertion order.
 
const TheKeyTypeLast () const
 Returns the last key in insertion order.
 
- Public Member Functions inherited from NCollection_BaseMap
size_t NbBuckets () const noexcept
 NbBuckets.
 
int Extent () const noexcept
 Extent (number of elements, legacy int-returning API).
 
int Length () const noexcept
 Length - number of elements (legacy int-returning API, synonym of Extent()).
 
size_t Size () const noexcept
 Size - number of elements.
 
bool IsEmpty () const noexcept
 IsEmpty.
 
const occ::handle< NCollection_BaseAllocator > & Allocator () const noexcept
 Returns attached allocator.
 

Protected Member Functions

bool lookup (const TheKeyType &theKey, OrderedMapNode *&theNode, size_t &theHash) const
 Lookup for particular key in map.
 
bool lookup (const TheKeyType &theKey, OrderedMapNode *&theNode) const
 Lookup for particular key in map.
 
bool IsEqual (const TheKeyType &theKey1, const TheKeyType &theKey2) const
 
size_t HashCode (const TheKeyType &theKey, const size_t theUpperBound) const
 
void appendToList (OrderedMapNode *theNode)
 Append a node to the tail of the insertion-order linked list.
 
void unlinkFromList (OrderedMapNode *theNode)
 Unlink a node from the insertion-order linked list.
 
template<typename K , bool ReturnRef>
auto addImpl (K &&theKey, std::bool_constant< ReturnRef >) -> std::conditional_t< ReturnRef, const TheKeyType &, bool >
 Implementation helper for Add/Added.
 
template<bool IsTry, bool ReturnRef, typename... Args>
auto emplaceImpl (std::bool_constant< IsTry >, std::bool_constant< ReturnRef >, Args &&... theArgs) -> std::conditional_t< ReturnRef, const TheKeyType &, bool >
 Implementation helper for Emplace/TryEmplace/Emplaced/TryEmplaced.
 
- Protected Member Functions inherited from NCollection_BaseMap
 NCollection_BaseMap (const size_t theNbBuckets, const bool single, const occ::handle< NCollection_BaseAllocator > &theAllocator)
 Constructor.
 
 NCollection_BaseMap (NCollection_BaseMap &&theOther) noexcept
 Move Constructor.
 
virtual ~NCollection_BaseMap ()=default
 Destructor.
 
bool BeginResize (const size_t theExtent, size_t &theNewBuckets, NCollection_ListNode **&data1, NCollection_ListNode **&data2) const
 BeginResize.
 
void EndResize (const size_t theExtent, const size_t theNewBuckets, NCollection_ListNode **data1, NCollection_ListNode **data2) noexcept
 EndResize.
 
bool Resizable () const noexcept
 Resizable.
 
size_t Increment () noexcept
 Increment.
 
size_t Decrement () noexcept
 Decrement.
 
void Destroy (NCollection_DelMapNode fDel, bool doReleaseMemory=true)
 Destroy.
 
size_t NextPrimeForMap (const size_t N) const noexcept
 NextPrimeForMap.
 
void exchangeMapsData (NCollection_BaseMap &theOther) noexcept
 Exchange content of two maps without data copying.
 
NCollection_BaseMapoperator= (NCollection_BaseMap &&) noexcept=delete
 Move operator.
 
 NCollection_BaseMap (const NCollection_BaseMap &)=delete
 Copy Constructor.
 
NCollection_BaseMapoperator= (const NCollection_BaseMap &)=delete
 Assign operator.
 

Protected Attributes

Hasher myHasher
 
OrderedMapNodemyFirst
 Head of insertion-order linked list.
 
OrderedMapNodemyLast
 Tail of insertion-order linked list.
 
- Protected Attributes inherited from NCollection_BaseMap
occ::handle< NCollection_BaseAllocatormyAllocator
 
NCollection_ListNode ** myData1
 
NCollection_ListNode ** myData2
 

Additional Inherited Members

- Static Protected Member Functions inherited from NCollection_BaseMap
static size_t NbBucketsFromInt (const int theNbBuckets)
 Converts legacy int bucket count to size_t with validation.
 

Detailed Description

template<class TheKeyType, class Hasher = NCollection_DefaultHasher<TheKeyType>>
class NCollection_OrderedMap< TheKeyType, Hasher >

Hash set that preserves insertion order.

NCollection_OrderedMap is an alternative to NCollection_Map that maintains a doubly-linked list threaded through the hash nodes, so iteration always follows the order in which keys were inserted.

Key features:

Best suited for:

Compared to NCollection_IndexedMap:

The number of buckets is managed automatically and grows when the number of keys exceeds the bucket count.

Note
This class is NOT thread-safe. External synchronization is required for concurrent access from multiple threads.
Template Parameters
TheKeyTypeType of keys
HasherHash and equality functor (default: NCollection_DefaultHasher)

Member Typedef Documentation

◆ const_iterator

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
typedef NCollection_StlIterator<std::forward_iterator_tag, Iterator, TheKeyType, true> NCollection_OrderedMap< TheKeyType, Hasher >::const_iterator

Shorthand for a constant iterator type.

◆ hasher

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
typedef Hasher NCollection_OrderedMap< TheKeyType, Hasher >::hasher

◆ iterator

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
typedef const_iterator NCollection_OrderedMap< TheKeyType, Hasher >::iterator

Shorthand for iterator type (same as const_iterator for key-only maps).

◆ key_type

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
typedef TheKeyType NCollection_OrderedMap< TheKeyType, Hasher >::key_type

STL-compliant typedef for key type.

Constructor & Destructor Documentation

◆ NCollection_OrderedMap() [1/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( )
inline

Empty constructor.

◆ NCollection_OrderedMap() [2/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( const size_t theNbBuckets,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor.

◆ NCollection_OrderedMap() [3/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( const int theNbBuckets,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor (legacy int-taking).

◆ NCollection_OrderedMap() [4/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( const Hasher & theHasher,
const size_t theNbBuckets = 1,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor with custom hasher (copy).

Parameters
theHashercustom hasher instance
theNbBucketsinitial number of buckets
theAllocatorcustom memory allocator

◆ NCollection_OrderedMap() [5/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( const Hasher & theHasher,
const int theNbBuckets,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor with custom hasher (copy, legacy int-taking).

◆ NCollection_OrderedMap() [6/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( Hasher && theHasher,
const size_t theNbBuckets = 1,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor with custom hasher (move).

Parameters
theHashercustom hasher instance (moved)
theNbBucketsinitial number of buckets
theAllocatorcustom memory allocator

◆ NCollection_OrderedMap() [7/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( Hasher && theHasher,
const int theNbBuckets,
const occ::handle< NCollection_BaseAllocator > & theAllocator = nullptr )
inlineexplicit

Constructor with custom hasher (move, legacy int-taking).

◆ NCollection_OrderedMap() [8/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( const NCollection_OrderedMap< TheKeyType, Hasher > & theOther)
inline

Copy constructor.

◆ NCollection_OrderedMap() [9/9]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::NCollection_OrderedMap ( NCollection_OrderedMap< TheKeyType, Hasher > && theOther)
inlinenoexcept

Move constructor.

◆ ~NCollection_OrderedMap()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap< TheKeyType, Hasher >::~NCollection_OrderedMap ( )
inlineoverride

Destructor.

Member Function Documentation

◆ Add() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::Add ( const TheKeyType & theKey)
inline

Add.

◆ Add() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::Add ( TheKeyType && theKey)
inline

Add.

◆ Added() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::Added ( const TheKeyType & theKey)
inline

Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object.

◆ Added() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::Added ( TheKeyType && theKey)
inline

Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object.

◆ addImpl()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<typename K , bool ReturnRef>
auto NCollection_OrderedMap< TheKeyType, Hasher >::addImpl ( K && theKey,
std::bool_constant< ReturnRef >  ) -> std::conditional_t<ReturnRef, const TheKeyType&, bool>
inlineprotected

Implementation helper for Add/Added.

Template Parameters
Kforwarding reference type for key
ReturnRefif true, returns const reference to key; if false, returns bool
Parameters
theKeykey to add
Returns
bool (Add) or const TheKeyType& (Added)

◆ appendToList()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::appendToList ( OrderedMapNode * theNode)
inlineprotected

Append a node to the tail of the insertion-order linked list.

◆ Assign()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap & NCollection_OrderedMap< TheKeyType, Hasher >::Assign ( const NCollection_OrderedMap< TheKeyType, Hasher > & theOther)
inline

Assign. This method does not change the internal allocator.

◆ begin()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
iterator NCollection_OrderedMap< TheKeyType, Hasher >::begin ( ) const
inlinenoexcept

Returns an iterator pointing to the first element in the map.

◆ cbegin()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const_iterator NCollection_OrderedMap< TheKeyType, Hasher >::cbegin ( ) const
inlinenoexcept

Returns a const iterator pointing to the first element in the map.

◆ cend()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const_iterator NCollection_OrderedMap< TheKeyType, Hasher >::cend ( ) const
inlinenoexcept

Returns a const iterator referring to the past-the-end element in the map.

◆ Clear() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::Clear ( const bool doReleaseMemory = false)
inline

Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.

◆ Clear() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::Clear ( const occ::handle< NCollection_BaseAllocator > & theAllocator)
inline

Clear data and reset allocator.

◆ Contained()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
std::optional< std::reference_wrapper< const TheKeyType > > NCollection_OrderedMap< TheKeyType, Hasher >::Contained ( const TheKeyType & theKey) const
inline

Contained returns optional const reference to the key in the map. Returns std::nullopt if the key is not found.

◆ Contains()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::Contains ( const TheKeyType & theKey) const
inline

Contains.

◆ Emplace()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<typename... Args>
bool NCollection_OrderedMap< TheKeyType, Hasher >::Emplace ( Args &&... theArgs)
inline

Emplace constructs key in-place; if key exists, destroys and reconstructs.

Parameters
theArgsarguments forwarded to key constructor
Returns
true if key was newly added, false if key already existed (and was reconstructed)

◆ Emplaced()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<typename... Args>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::Emplaced ( Args &&... theArgs)
inline

Emplaced constructs key in-place; if key exists, destroys and reconstructs.

Parameters
theArgsarguments forwarded to key constructor
Returns
const reference to the key in the map

◆ emplaceImpl()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<bool IsTry, bool ReturnRef, typename... Args>
auto NCollection_OrderedMap< TheKeyType, Hasher >::emplaceImpl ( std::bool_constant< IsTry > ,
std::bool_constant< ReturnRef > ,
Args &&... theArgs ) -> std::conditional_t<ReturnRef, const TheKeyType&, bool>
inlineprotected

Implementation helper for Emplace/TryEmplace/Emplaced/TryEmplaced.

Template Parameters
IsTryif true, does not modify existing; if false, destroys and reconstructs
ReturnRefif true, returns const reference to key; if false, returns bool
Parameters
theArgsarguments forwarded to key constructor
Returns
bool or const TheKeyType& depending on ReturnRef

◆ end()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
iterator NCollection_OrderedMap< TheKeyType, Hasher >::end ( ) const
inlinenoexcept

Returns an iterator referring to the past-the-end element in the map.

◆ Exchange()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::Exchange ( NCollection_OrderedMap< TheKeyType, Hasher > & theOther)
inlinenoexcept

Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!

◆ First()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::First ( ) const
inline

Returns the first key in insertion order.

Returns
const reference to the first key
Exceptions
Standard_NoSuchObjectif map is empty

◆ GetHasher()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const Hasher & NCollection_OrderedMap< TheKeyType, Hasher >::GetHasher ( ) const
inlinenoexcept

Returns const reference to the hasher.

◆ HashCode()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
size_t NCollection_OrderedMap< TheKeyType, Hasher >::HashCode ( const TheKeyType & theKey,
const size_t theUpperBound ) const
inlineprotected

◆ IsEqual()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::IsEqual ( const TheKeyType & theKey1,
const TheKeyType & theKey2 ) const
inlineprotected

◆ Last()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::Last ( ) const
inline

Returns the last key in insertion order.

Returns
const reference to the last key
Exceptions
Standard_NoSuchObjectif map is empty

◆ lookup() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::lookup ( const TheKeyType & theKey,
OrderedMapNode *& theNode ) const
inlineprotected

Lookup for particular key in map.

Parameters
[in]theKeykey to compute hash
[out]theNodethe detected node with equal key. Can be null.
Returns
true if key is found

◆ lookup() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::lookup ( const TheKeyType & theKey,
OrderedMapNode *& theNode,
size_t & theHash ) const
inlineprotected

Lookup for particular key in map.

Parameters
[in]theKeykey to compute hash
[out]theNodethe detected node with equal key. Can be null.
[out]theHashcomputed bounded hash code for current key.
Returns
true if key is found

◆ operator=() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap & NCollection_OrderedMap< TheKeyType, Hasher >::operator= ( const NCollection_OrderedMap< TheKeyType, Hasher > & theOther)
inline

Assign operator.

◆ operator=() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
NCollection_OrderedMap & NCollection_OrderedMap< TheKeyType, Hasher >::operator= ( NCollection_OrderedMap< TheKeyType, Hasher > && theOther)
inlinenoexcept

Move operator.

◆ Remove()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
bool NCollection_OrderedMap< TheKeyType, Hasher >::Remove ( const TheKeyType & K)
inline

Remove.

◆ ReSize() [1/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::ReSize ( const int N)
inline

◆ ReSize() [2/2]

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::ReSize ( const size_t N)
inline

ReSize.

◆ TryEmplace()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<typename... Args>
bool NCollection_OrderedMap< TheKeyType, Hasher >::TryEmplace ( Args &&... theArgs)
inline

TryEmplace constructs key in-place only if not already present.

Parameters
theArgsarguments forwarded to key constructor
Returns
true if key was newly added, false if key already existed

◆ TryEmplaced()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
template<typename... Args>
const TheKeyType & NCollection_OrderedMap< TheKeyType, Hasher >::TryEmplaced ( Args &&... theArgs)
inline

TryEmplaced constructs key in-place only if not already present.

Parameters
theArgsarguments forwarded to key constructor
Returns
const reference to the key (existing or newly added)

◆ unlinkFromList()

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
void NCollection_OrderedMap< TheKeyType, Hasher >::unlinkFromList ( OrderedMapNode * theNode)
inlineprotected

Unlink a node from the insertion-order linked list.

Field Documentation

◆ myFirst

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
OrderedMapNode* NCollection_OrderedMap< TheKeyType, Hasher >::myFirst
protected

Head of insertion-order linked list.

◆ myHasher

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
Hasher NCollection_OrderedMap< TheKeyType, Hasher >::myHasher
protected

◆ myLast

template<class TheKeyType , class Hasher = NCollection_DefaultHasher<TheKeyType>>
OrderedMapNode* NCollection_OrderedMap< TheKeyType, Hasher >::myLast
protected

Tail of insertion-order linked list.


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