MeVisLabToolboxReference
ml::CSOObjectVector< T > Class Template Reference

Dynamic templated vector For speed and better memory handling, the vector is an array within an array The base blocks have a BLOCKSIZE of 65535 This allows for quick expanding. More...

#include <CSOObjectVector.h>

Inheritance diagram for ml::CSOObjectVector< T >:
ml::CSOObjectHeap< T >

List of all members.

Public Member Functions

 CSOObjectVector (unsigned int init=0, unsigned int bs=65535)
 Standard constructor.
virtual ~CSOObjectVector ()
 Standard destructor.
unsigned int num () const
 Returns number of elements in the vector.
T * atBoundsCheck (unsigned int pos) const
 Returns element at given position, return NULL when out of range.
T * at (unsigned int pos) const
 Returns element at given position.
T * firstBoundsCheck () const
 Returns first element, return NULL when out of range.
T * first () const
 Returns first element.
T * lastBoundsCheck () const
 Returns last element, return NULL when out of range.
T * last () const
 Returns last element.
virtual unsigned int append (T *elem)
 Appends element to back of vector.
virtual void swap (unsigned int p1, unsigned int p2)
 Swaps two elements in vector.
virtual void clear ()
 Clears all internal pointers This does not delete the elements in the vector!!
virtual void deleteAt (unsigned int pos)
 Deletes element at given position.
virtual void deleteLast ()
 Deletes last element of vector.
virtual int remove (T *elem)
 Deletes element given by its pointer, search element and delete.
virtual int lookup (T *elem) const
 Searches for element in vector and return its position.
virtual int removeUnSwapped (T *elem)
 Deletes element given by its pointer, search element and delete, keep order of elements!
virtual void destroy ()
 Deletes all elements in the vector This does not reset the number of elements!!
virtual void replace (T *elem, unsigned int pos)
 Replaces the given position with the given element.
void reserve (unsigned int init)
 Reserves num elements, copy old ones if needed.

Protected Member Functions

virtual void expand ()
 Grows vector, add extra block of size BLOCKSIZE.
virtual unsigned int appendUnsafe (T *elem)
 Appends element to back of vector, don't check on element being non-NULL Don't use this function directly!!

Detailed Description

template<class T>
class ml::CSOObjectVector< T >

Dynamic templated vector For speed and better memory handling, the vector is an array within an array The base blocks have a BLOCKSIZE of 65535 This allows for quick expanding.

Definition at line 28 of file CSOObjectVector.h.


Constructor & Destructor Documentation

template<class T >
ml::CSOObjectVector< T >::CSOObjectVector ( unsigned int  init = 0,
unsigned int  bs = 65535 
)

Standard constructor.

Definition at line 117 of file CSOObjectVector.h.

References ML_CHECK_NEW, and T.

template<class T >
ml::CSOObjectVector< T >::~CSOObjectVector ( ) [virtual]

Standard destructor.

Definition at line 132 of file CSOObjectVector.h.


Member Function Documentation

template<class T>
unsigned int ml::CSOObjectVector< T >::append ( T *  elem) [virtual]

Appends element to back of vector.

Definition at line 182 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::sort().

template<class T>
unsigned int ml::CSOObjectVector< T >::appendUnsafe ( T *  elem) [protected, virtual]

Appends element to back of vector, don't check on element being non-NULL Don't use this function directly!!

Definition at line 199 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::insert().

template<class T>
T* ml::CSOObjectVector< T >::at ( unsigned int  pos) const [inline]

Returns element at given position.

Definition at line 43 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::remove(), and ml::CSOObjectHeap< T >::swap().

template<class T>
T* ml::CSOObjectVector< T >::atBoundsCheck ( unsigned int  pos) const [inline]

Returns element at given position, return NULL when out of range.

Definition at line 41 of file CSOObjectVector.h.

template<class T >
void ml::CSOObjectVector< T >::clear ( void  ) [virtual]

Clears all internal pointers This does not delete the elements in the vector!!

Definition at line 140 of file CSOObjectVector.h.

References ML_DELETE_ARRAY.

Referenced by ml::CSOObjectHeap< T >::sort(), and ml::CSOObjectHeap< T >::~CSOObjectHeap().

template<class T >
void ml::CSOObjectVector< T >::deleteAt ( unsigned int  pos) [virtual]

Deletes element at given position.

Definition at line 237 of file CSOObjectVector.h.

template<class T >
void ml::CSOObjectVector< T >::deleteLast ( ) [virtual]

Deletes last element of vector.

Definition at line 249 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::remove().

template<class T >
void ml::CSOObjectVector< T >::destroy ( ) [virtual]

Deletes all elements in the vector This does not reset the number of elements!!

Definition at line 152 of file CSOObjectVector.h.

References ML_DELETE.

Referenced by ml::deleteVector().

template<class T >
void ml::CSOObjectVector< T >::expand ( ) [protected, virtual]

Grows vector, add extra block of size BLOCKSIZE.

Definition at line 164 of file CSOObjectVector.h.

References ML_CHECK_NEW, ML_DELETE_ARRAY, and T.

template<class T>
T* ml::CSOObjectVector< T >::first ( ) const [inline]

Returns first element.

Definition at line 47 of file CSOObjectVector.h.

template<class T>
T* ml::CSOObjectVector< T >::firstBoundsCheck ( ) const [inline]

Returns first element, return NULL when out of range.

Definition at line 45 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::root().

template<class T>
T* ml::CSOObjectVector< T >::last ( ) const [inline]

Returns last element.

Definition at line 51 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::insert().

template<class T>
T* ml::CSOObjectVector< T >::lastBoundsCheck ( ) const [inline]

Returns last element, return NULL when out of range.

Definition at line 49 of file CSOObjectVector.h.

template<class T>
int ml::CSOObjectVector< T >::lookup ( T *  elem) const [virtual]

Searches for element in vector and return its position.

Definition at line 261 of file CSOObjectVector.h.

template<class T>
unsigned int ml::CSOObjectVector< T >::num ( ) const [inline]

Returns number of elements in the vector.

Definition at line 39 of file CSOObjectVector.h.

Referenced by ml::CSOObjectHeap< T >::insert(), ml::CSOObjectHeap< T >::remove(), ml::CSOObjectHeap< T >::sort(), and ml::CSOObjectHeap< T >::update().

template<class T>
int ml::CSOObjectVector< T >::remove ( T *  elem) [virtual]

Deletes element given by its pointer, search element and delete.

Reimplemented in ml::CSOObjectHeap< T >, and ml::CSOObjectHeap< CSOLiveWireNode >.

Definition at line 278 of file CSOObjectVector.h.

template<class T>
int ml::CSOObjectVector< T >::removeUnSwapped ( T *  elem) [virtual]

Deletes element given by its pointer, search element and delete, keep order of elements!

Definition at line 291 of file CSOObjectVector.h.

template<class T>
void ml::CSOObjectVector< T >::replace ( T *  elem,
unsigned int  pos 
) [virtual]

Replaces the given position with the given element.

Definition at line 213 of file CSOObjectVector.h.

template<class T >
void ml::CSOObjectVector< T >::reserve ( unsigned int  init)

Reserves num elements, copy old ones if needed.

Definition at line 308 of file CSOObjectVector.h.

References ML_CHECK_NEW, ML_DELETE_ARRAY, and T.

template<class T >
void ml::CSOObjectVector< T >::swap ( unsigned int  p1,
unsigned int  p2 
) [virtual]

Swaps two elements in vector.

Reimplemented in ml::CSOObjectHeap< T >, and ml::CSOObjectHeap< CSOLiveWireNode >.

Definition at line 221 of file CSOObjectVector.h.

References T.

Referenced by ml::CSOObjectHeap< T >::swap().


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