Open CASCADE Technology
7.3.0
|
#include <NCollection_Array1.hxx>
Data Structures | |
class | Iterator |
Implementation of the Iterator interface. More... | |
Public Types | |
typedef TheItemType | value_type |
STL-compliant typedef for value type. More... | |
typedef NCollection_StlIterator< std::random_access_iterator_tag, Iterator, TheItemType, false > | iterator |
Shorthand for a regular iterator type. More... | |
typedef NCollection_StlIterator< std::random_access_iterator_tag, Iterator, TheItemType, true > | const_iterator |
Shorthand for a constant iterator type. More... | |
Public Member Functions | |
iterator | begin () const |
Returns an iterator pointing to the first element in the array. More... | |
iterator | end () const |
Returns an iterator referring to the past-the-end element in the array. More... | |
const_iterator | cbegin () const |
Returns a const iterator pointing to the first element in the array. More... | |
const_iterator | cend () const |
Returns a const iterator referring to the past-the-end element in the array. More... | |
NCollection_Array1 () | |
Empty constructor; should be used with caution. More... | |
NCollection_Array1 (const Standard_Integer theLower, const Standard_Integer theUpper) | |
Constructor. More... | |
NCollection_Array1 (const NCollection_Array1 &theOther) | |
Copy constructor. More... | |
NCollection_Array1 (NCollection_Array1 &&theOther) | |
Move constructor. More... | |
NCollection_Array1 (const TheItemType &theBegin, const Standard_Integer theLower, const Standard_Integer theUpper) | |
C array-based constructor. More... | |
void | Init (const TheItemType &theValue) |
Initialise the items with theValue. More... | |
Standard_Integer | Size (void) const |
Size query. More... | |
Standard_Integer | Length (void) const |
Length query (the same) More... | |
Standard_Boolean | IsEmpty () const |
Return TRUE if array has zero length. More... | |
Standard_Integer | Lower (void) const |
Lower bound. More... | |
Standard_Integer | Upper (void) const |
Upper bound. More... | |
Standard_Boolean | IsDeletable (void) const |
myDeletable flag More... | |
Standard_Boolean | IsAllocated (void) const |
IsAllocated flag - for naming compatibility. More... | |
NCollection_Array1 & | Assign (const NCollection_Array1 &theOther) |
Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown. More... | |
NCollection_Array1 & | Move (NCollection_Array1 &theOther) |
Move assignment. This array will borrow all the data from theOther. The moved object will keep pointer to the memory buffer and range, but it will not free the buffer on destruction. More... | |
NCollection_Array1 & | operator= (const NCollection_Array1 &theOther) |
Assignment operator;. More... | |
NCollection_Array1 & | operator= (NCollection_Array1 &&theOther) |
Move assignment operator;. More... | |
const TheItemType & | First () const |
TheItemType & | ChangeFirst () |
const TheItemType & | Last () const |
TheItemType & | ChangeLast () |
const TheItemType & | Value (const Standard_Integer theIndex) const |
Constant value access. More... | |
const TheItemType & | operator() (const Standard_Integer theIndex) const |
operator() - alias to Value More... | |
TheItemType & | ChangeValue (const Standard_Integer theIndex) |
Variable value access. More... | |
TheItemType & | operator() (const Standard_Integer theIndex) |
operator() - alias to ChangeValue More... | |
void | SetValue (const Standard_Integer theIndex, const TheItemType &theItem) |
Set value. More... | |
void | Resize (const Standard_Integer theLower, const Standard_Integer theUpper, const Standard_Boolean theToCopyData) |
Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE. More... | |
~NCollection_Array1 (void) | |
Destructor - releases the memory. More... | |
Protected Attributes | |
Standard_Integer | myLowerBound |
Standard_Integer | myUpperBound |
Standard_Boolean | myDeletable |
Flag showing who allocated the array. More... | |
TheItemType * | myData |
Pointer to '0'th array item. More... | |
Purpose: The class Array1 represents unidimensional arrays of fixed size known at run time. The range of the index is user defined. An array1 can be constructed with a "C array". This functionality is useful to call methods expecting an Array1. It allows to carry the bounds inside the arrays.
Examples: Item tab[100]; // An example with a C array Array1OfItem ttab (tab[0],1,100);
Array1OfItem tttab (ttab(10),10,20); // a slice of ttab
If you want to reindex an array from 1 to Length do :
Array1 tab1(tab(tab.Lower()),1,tab.Length());
Warning: Programs client of such a class must be independant of the range of the first element. Then, a C++ for loop must be written like this
for (i = A.Lower(); i <= A.Upper(); i++)
Changes: In comparison to TCollection the flag isAllocated was renamed into myDeletable (alike in the Array2). For naming compatibility the method IsAllocated remained in class along with IsDeletable.
typedef NCollection_StlIterator<std::random_access_iterator_tag, Iterator, TheItemType, true> NCollection_Array1< TheItemType >::const_iterator |
Shorthand for a constant iterator type.
typedef NCollection_StlIterator<std::random_access_iterator_tag, Iterator, TheItemType, false> NCollection_Array1< TheItemType >::iterator |
Shorthand for a regular iterator type.
typedef TheItemType NCollection_Array1< TheItemType >::value_type |
STL-compliant typedef for value type.
|
inline |
|
inline |
Constructor.
|
inline |
Copy constructor.
|
inline |
Move constructor.
|
inline |
C array-based constructor.
Makes this array to use the buffer pointed by theBegin instead of allocating it dynamically. Argument theBegin should be a reference to the first element of the pre-allocated buffer (usually local C array buffer), with size at least theUpper - theLower + 1 items.
Warning: returning array object created using this constructor from function by value will result in undefined behavior if compiler performs return value optimization (this is likely to be true for all modern compilers in release mode). The same happens if array is copied using Move() function or move constructor and target object's lifespan is longer than that of the buffer.
|
inline |
Destructor - releases the memory.
|
inline |
Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.
|
inline |
Returns an iterator pointing to the first element in the array.
|
inline |
Returns a const iterator pointing to the first element in the array.
|
inline |
Returns a const iterator referring to the past-the-end element in the array.
|
inline |
|
inline |
|
inline |
Variable value access.
|
inline |
Returns an iterator referring to the past-the-end element in the array.
|
inline |
|
inline |
Initialise the items with theValue.
|
inline |
IsAllocated flag - for naming compatibility.
|
inline |
myDeletable flag
|
inline |
Return TRUE if array has zero length.
|
inline |
|
inline |
Length query (the same)
|
inline |
Lower bound.
|
inline |
Move assignment. This array will borrow all the data from theOther. The moved object will keep pointer to the memory buffer and range, but it will not free the buffer on destruction.
|
inline |
operator() - alias to Value
|
inline |
operator() - alias to ChangeValue
|
inline |
Assignment operator;.
|
inline |
Move assignment operator;.
|
inline |
Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.
theLower | new lower bound of array |
theUpper | new upper bound of array |
theToCopyData | flag to copy existing data into new array |
|
inline |
Set value.
|
inline |
Size query.
|
inline |
Upper bound.
|
inline |
Constant value access.
|
protected |
Pointer to '0'th array item.
|
protected |
Flag showing who allocated the array.
|
protected |
|
protected |