Open CASCADE Technology 6.6.0
|
#include <NCollection_SparseArray.hxx>
Data Structures | |
class | ConstIterator |
class | Iterator |
Public Member Functions | |
NCollection_SparseArray (Standard_Size theIncrement) | |
Constructor; accepts size of blocks. | |
NCollection_SparseArray & | Assign (const NCollection_SparseArray &theOther) |
Explicit assignment operator. | |
void | Exchange (NCollection_SparseArray &theOther) |
Exchange the data of two arrays; can be used primarily to move contents of theOther into the new array in a fast way (without creation of duplicated data) | |
virtual | ~NCollection_SparseArray () |
Destructor. | |
Array-like interface (in addition to inherited methods) | |
const TheItemType & | Value (const Standard_Size theIndex) const |
Direct const access to the item. | |
const TheItemType & | operator() (const Standard_Size theIndex) const |
Const access to the item - operator() | |
TheItemType & | ChangeValue (const Standard_Size theIndex) |
Modification access to the item. | |
TheItemType & | operator() (const Standard_Size theIndex) |
Access to the item - operator() | |
TheItemType & | SetValue (const Standard_Size theIndex, const TheItemType &theValue) |
Set a value at specified index method. | |
DataMap-like interface | |
Standard_Size | Extent () const |
Returns number of items in the array. | |
Standard_Boolean | IsEmpty () const |
Returns True if array is empty. | |
const TheItemType & | Find (const Standard_Size theIndex) const |
Direct const access to the item. | |
TheItemType & | ChangeFind (const Standard_Size theIndex) |
Modification access to the item; allocates space if necessary and marks the item as defined. | |
TheItemType & | Bind (const Standard_Size theIndex, const TheItemType &theValue) |
Set a value as explicit method. | |
Standard_Boolean | IsBound (const Standard_Size theIndex) const |
Returns True if the item is defined. | |
Standard_Boolean | UnBind (const Standard_Size theIndex) |
Remove the item from array. |
Dynamically resizable sparse array of objects
This class is similar to NCollection_Vector: it works like virtually unlimited array of items accessible by index; however unlike simple Vector it distinguishes items that have been set from the ones that have not been set explicitly.
This class can be also seen as equivalence of NCollection_DataMap<Standard_Integer,TheItemType> with the only one practical difference: it can be much less memory-expensive if items are small (e.g. Integer or Handle).
The index starts from 0, i.e. should be non-negative. Memory is allocated when item is set by SetValue().
Iterator returns only defined items; the item can be tested for being defined by IsSet(), and undefined by UnsetValue().
The attempt to access the item that has not been set will result in OutOfRange exception in Debug mode; in Release mode this will either return null-filled object or cause access violation.
NCollection_SparseArray< TheItemType >::NCollection_SparseArray | ( | Standard_Size | theIncrement | ) | [inline] |
virtual NCollection_SparseArray< TheItemType >::~NCollection_SparseArray | ( | ) | [inline, virtual] |
NCollection_SparseArray& NCollection_SparseArray< TheItemType >::Assign | ( | const NCollection_SparseArray< TheItemType > & | theOther | ) | [inline] |
TheItemType& NCollection_SparseArray< TheItemType >::Bind | ( | const Standard_Size | theIndex, |
const TheItemType & | theValue | ||
) | [inline] |
TheItemType& NCollection_SparseArray< TheItemType >::ChangeFind | ( | const Standard_Size | theIndex | ) | [inline] |
TheItemType& NCollection_SparseArray< TheItemType >::ChangeValue | ( | const Standard_Size | theIndex | ) | [inline] |
void NCollection_SparseArray< TheItemType >::Exchange | ( | NCollection_SparseArray< TheItemType > & | theOther | ) | [inline] |
Standard_Size NCollection_SparseArray< TheItemType >::Extent | ( | ) | const [inline] |
const TheItemType& NCollection_SparseArray< TheItemType >::Find | ( | const Standard_Size | theIndex | ) | const [inline] |
Standard_Boolean NCollection_SparseArray< TheItemType >::IsBound | ( | const Standard_Size | theIndex | ) | const [inline] |
Standard_Boolean NCollection_SparseArray< TheItemType >::IsEmpty | ( | ) | const [inline] |
const TheItemType& NCollection_SparseArray< TheItemType >::operator() | ( | const Standard_Size | theIndex | ) | const [inline] |
TheItemType& NCollection_SparseArray< TheItemType >::operator() | ( | const Standard_Size | theIndex | ) | [inline] |
TheItemType& NCollection_SparseArray< TheItemType >::SetValue | ( | const Standard_Size | theIndex, |
const TheItemType & | theValue | ||
) | [inline] |
Standard_Boolean NCollection_SparseArray< TheItemType >::UnBind | ( | const Standard_Size | theIndex | ) | [inline] |
const TheItemType& NCollection_SparseArray< TheItemType >::Value | ( | const Standard_Size | theIndex | ) | const [inline] |