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

Class NCollection_Vector (dynamic array of objects) More...

#include <NIS_Drawer.hxx>

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

Data Structures

class  Iterator
 Nested class Iterator. More...
 

Public Types

typedef TheItemType TheItemTypeD
 

Public Member Functions

public methods
 NCollection_Vector (const Standard_Integer theIncrement=256, const Handle_NCollection_BaseAllocator &theAlloc=NULL)
 Constructor. More...
 
 NCollection_Vector (const NCollection_Vector &theOther)
 Copy constructor. More...
 
 ~NCollection_Vector ()
 Destructor. More...
 
NCollection_Vectoroperator= (const NCollection_Vector &theOther)
 Operator=. More...
 
Standard_Integer Length () const
 Total number of items. More...
 
virtual Standard_Integer Size () const
 Total number of items in the vector. More...
 
Standard_Integer Lower () const
 Method for consistency with other collections. More...
 
Standard_Integer Upper () const
 Method for consistency with other collections. More...
 
Standard_Boolean IsEmpty () const
 Empty query. More...
 
virtual void Assign (const NCollection_BaseCollection< TheItemType > &theOther)
 Virtual assignment (any collection to this array) More...
 
void Assign (const NCollection_Vector &theOther, const Standard_Boolean theOwnAllocator=Standard_True)
 Assignment to the collection of the same type. More...
 
virtual TYPENAME
NCollection_BaseCollection
< TheItemType >::Iterator
CreateIterator () const
 Method to create iterators for base collections. More...
 
TheItemType & Append (const TheItemType &theValue)
 Append. More...
 
const TheItemType & operator() (const Standard_Integer theIndex) const
 Operator() - query the const value. More...
 
const TheItemType & Value (const Standard_Integer theIndex) const
 Constructor. More...
 
const TheItemType & First () const
 
TheItemType & ChangeFirst ()
 
const TheItemType & Last () const
 
TheItemType & ChangeLast ()
 
TheItemType & operator() (const Standard_Integer theIndex)
 Operator() - query the value. More...
 
TheItemType & ChangeValue (const Standard_Integer theIndex)
 Constructor. More...
 
TheItemType & SetValue (const Standard_Integer theIndex, const TheItemType &theValue)
 SetValue () - set or append a value. More...
 
- Public Member Functions inherited from NCollection_BaseCollection< TheItemType >
 NCollection_BaseCollection (const Handle< NCollection_BaseAllocator > &theAllocator=0L)
 Common for all collections constructor takes care of theAllocator. More...
 
virtual ~NCollection_BaseCollection (void)
 Destructor - must be implemented to release the memory. More...
 
const Handle
< NCollection_BaseAllocator > & 
Allocator () const
 Returns attached allocator. More...
 
- Public Member Functions inherited from NCollection_BaseVector
void Clear ()
 Empty the vector of its objects. More...
 

Additional Inherited Members

- Protected Types inherited from NCollection_BaseVector
typedef void(* initMemBlocks_t )(NCollection_BaseVector &theVector, MemBlock &theBlock, const Standard_Integer theFirst, const Standard_Integer theSize)
 Allocate memory for array of memory blocks. More...
 
- Protected Member Functions inherited from NCollection_BaseCollection< TheItemType >
const Handle
< NCollection_BaseAllocator > & 
IterAllocator (void) const
 
void exchangeAllocators (NCollection_BaseCollection &theOther)
 Exchange allocators of two collections. More...
 
- Protected Member Functions inherited from NCollection_BaseVector
 NCollection_BaseVector (Handle< NCollection_BaseAllocator > &theAllocator, initMemBlocks_t theInitBlocks, const size_t theSize, const Standard_Integer theInc)
 Empty constructor. More...
 
 NCollection_BaseVector (Handle< NCollection_BaseAllocator > &theAllocator, initMemBlocks_t theInitBlocks, const NCollection_BaseVector &theOther)
 Copy constructor. More...
 
void * expandV (Handle< NCollection_BaseAllocator > &theAllocator, const Standard_Integer theIndex)
 
void * findV (const Standard_Integer theIndex) const
 Locate the memory holding the desired value. More...
 
- Static Protected Member Functions inherited from NCollection_BaseVector
static MemBlockallocMemBlocks (Handle< NCollection_BaseAllocator > &theAllocator, const Standard_Integer theCapacity, MemBlock *theSource=NULL, const Standard_Integer theSourceSize=0)
 Allocate memory for array of memory blocks. More...
 
- Protected Attributes inherited from NCollection_BaseCollection< TheItemType >
Handle< NCollection_BaseAllocatormyAllocator
 
- Protected Attributes inherited from NCollection_BaseVector
size_t myItemSize
 
Standard_Integer myIncrement
 
Standard_Integer myLength
 
Standard_Integer myCapacity
 
Standard_Integer myNBlocks
 
MemBlockmyData
 
initMemBlocks_t myInitBlocks
 

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 = NULL 
)
inline

Constructor.

template<class TheItemType>
NCollection_Vector< TheItemType >::NCollection_Vector ( const NCollection_Vector< TheItemType > &  theOther)
inline

Copy constructor.

template<class TheItemType>
NCollection_Vector< TheItemType >::~NCollection_Vector ( )
inline

Destructor.

Member Function Documentation

template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::Append ( const TheItemType &  theValue)
inline

Append.

template<class TheItemType>
virtual void NCollection_Vector< TheItemType >::Assign ( const NCollection_BaseCollection< TheItemType > &  theOther)
inlinevirtual

Virtual assignment (any collection to this array)

Implements NCollection_BaseCollection< TheItemType >.

template<class TheItemType>
void NCollection_Vector< TheItemType >::Assign ( const NCollection_Vector< TheItemType > &  theOther,
const Standard_Boolean  theOwnAllocator = Standard_True 
)
inline

Assignment to the collection of the same type.

template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::ChangeFirst ( )
inline
Returns
first element
template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::ChangeLast ( )
inline
Returns
last element
template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::ChangeValue ( const Standard_Integer  theIndex)
inline

Constructor.

template<class TheItemType>
virtual TYPENAME NCollection_BaseCollection<TheItemType>::Iterator& NCollection_Vector< TheItemType >::CreateIterator ( void  ) const
inlinevirtual

Method to create iterators for base collections.

Implements NCollection_BaseCollection< TheItemType >.

template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::First ( ) const
inline
Returns
first element
template<class TheItemType>
Standard_Boolean NCollection_Vector< TheItemType >::IsEmpty ( ) const
inline

Empty query.

template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::Last ( ) const
inline
Returns
last element
template<class TheItemType>
Standard_Integer NCollection_Vector< TheItemType >::Length ( void  ) const
inline

Total number of items.

template<class TheItemType>
Standard_Integer NCollection_Vector< TheItemType >::Lower ( ) const
inline

Method for consistency with other collections.

Returns
Lower bound (inclusive) for iteration.
template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::operator() ( const Standard_Integer  theIndex) const
inline

Operator() - query the const value.

template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::operator() ( const Standard_Integer  theIndex)
inline

Operator() - query the value.

template<class TheItemType>
NCollection_Vector& NCollection_Vector< TheItemType >::operator= ( const NCollection_Vector< TheItemType > &  theOther)
inline

Operator=.

template<class TheItemType>
TheItemType& NCollection_Vector< TheItemType >::SetValue ( const Standard_Integer  theIndex,
const TheItemType &  theValue 
)
inline

SetValue () - set or append a value.

template<class TheItemType>
virtual Standard_Integer NCollection_Vector< TheItemType >::Size ( void  ) const
inlinevirtual

Total number of items in the vector.

Implements NCollection_BaseCollection< TheItemType >.

template<class TheItemType>
Standard_Integer NCollection_Vector< TheItemType >::Upper ( ) const
inline

Method for consistency with other collections.

Returns
Upper bound (inclusive) for iteration.
template<class TheItemType>
const TheItemType& NCollection_Vector< TheItemType >::Value ( const Standard_Integer  theIndex) const
inline

Constructor.


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