Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Data Structures | Public Types | Public Member Functions
NCollection_Vector< TheItemType > Class Template Reference

#include <NCollection_Vector.hxx>

Inheritance diagram for NCollection_Vector< TheItemType >:
Inheritance graph
[legend]

Data Structures

class  Iterator
class  MemBlock
 Nested class MemBlock. More...

Public Types

typedef TheItemType TheItemTypeD

Public Member Functions

 NCollection_Vector (const Standard_Integer theIncrement=256, const Handle_NCollection_BaseAllocator &theAlloc=0L)
 Constructor.
 NCollection_Vector (const NCollection_Vector &theOther)
 Copy constructor.
NCollection_Vectoroperator= (const NCollection_Vector &theOther)
 Operator =.
virtual Standard_Integer Size () const
 Total number of items in the vector.
virtual void Assign (const NCollection_BaseCollection< TheItemType > &theOther)
 Virtual assignment (any collection to this array)
void Assign (const NCollection_Vector &theOther)
 Assignment to the collection of the same type.
virtual TYPENAME
NCollection_BaseCollection
< TheItemType >::Iterator
CreateIterator (void) const
 Method to create iterators for base collections.
TheItemType & Append (const TheItemType &theValue)
 Append.
const TheItemType & operator() (const Standard_Integer theIndex) const
 Operator () - query the const value.
const TheItemType & Value (const Standard_Integer theIndex) const
TheItemType & operator() (const Standard_Integer theIndex)
 Operator () - query the value.
TheItemType & ChangeValue (const Standard_Integer theIndex)
TheItemType & SetValue (const Standard_Integer theIndex, const TheItemType &theValue)
 SetValue () - set or append a value.

Detailed Description

template<class TheItemType>
class NCollection_Vector< TheItemType >

Class NCollection_Vector (dynamic array of objects)

This class is similar to NCollection_Array1 though the indices always start at 0 (in Array1 the first index must be specified)

The Vector is always created with 0 length. It can be enlarged by two means:

  1. Calling the method Append (val) - then "val" is added to the end of the vector (the vector length is incremented)
  2. Calling the method SetValue (i, val) - if "i" is greater than or equal to the current length of the vector, the vector is enlarged to accomo- date this index

The methods Append and SetValue return a non-const reference to the copied object inside the vector. This reference is guaranteed to be valid until the vector is destroyed. It can be used to access the vector member directly or to pass its address to other data structures.

The vector iterator remembers the length of the vector at the moment of the creation or initialisation of the iterator. Therefore the iteration begins at index 0 and stops at the index equal to (remembered_length-1). It is OK to enlarge the vector during the iteration.


Member Typedef Documentation

template<class TheItemType>
typedef TheItemType NCollection_Vector< TheItemType >::TheItemTypeD

Constructor & Destructor Documentation

template<class TheItemType>
NCollection_Vector< TheItemType >::NCollection_Vector ( const Standard_Integer  theIncrement = 256,
const Handle_NCollection_BaseAllocator &  theAlloc = 0L 
) [inline]
template<class TheItemType>
NCollection_Vector< TheItemType >::NCollection_Vector ( const NCollection_Vector< TheItemType > &  theOther) [inline]

Member Function Documentation

template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::Append ( const TheItemType &  theValue) [inline]
template<class TheItemType>
virtual void NCollection_Vector< TheItemType >::Assign ( const NCollection_BaseCollection< TheItemType > &  theOther) [inline, virtual]
template<class TheItemType>
void NCollection_Vector< TheItemType >::Assign ( const NCollection_Vector< TheItemType > &  theOther) [inline]
template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::ChangeValue ( const Standard_Integer  theIndex) [inline]
template<class TheItemType>
virtual TYPENAME NCollection_BaseCollection<TheItemType>::Iterator& NCollection_Vector< TheItemType >::CreateIterator ( void  ) const [inline, virtual]
template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::operator() ( const Standard_Integer  theIndex) const [inline]
template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::operator() ( const Standard_Integer  theIndex) [inline]
template<class TheItemType>
NCollection_Vector& NCollection_Vector< TheItemType >::operator= ( const NCollection_Vector< TheItemType > &  theOther) [inline]
template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::SetValue ( const Standard_Integer  theIndex,
const TheItemType &  theValue 
) [inline]
template<class TheItemType>
virtual Standard_Integer NCollection_Vector< TheItemType >::Size ( void  ) const [inline, virtual]
template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::Value ( const Standard_Integer  theIndex) const [inline]

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