Simple++
Powerfull and lightning fast C++ Library
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Vector< T > Class Template Reference

#include <Vector.h>

Inheritance diagram for Vector< T >:
BasicSimpleIO BasicString< T > OrderedVector< T, Compare >

Public Types

typedef T * RandomAccessIterator
 
typedef T elemType
 
typedef unsigned long long Size
 

Public Member Functions

 Vector (void)
 
 Vector (Size size, Size maxSize)
 
 Vector (Size maxSize)
 
 Vector (const Vector &vector)
 
template<typename C >
 Vector (const Vector< C > &vector)
 
 Vector (Vector &&v)
 
template<typename C , size_t N>
 Vector (const C(&data)[N])
 
template<typename C >
 Vector (const C *data, Size maxSize)
 
template<typename C >
 Vector (const C *data, Size size, Size maxSize)
 
 ~Vector (void)
 
bool iterate (RandomAccessIterator *it, elemType **e)
 
void reserve (Size newMax)
 
void allocate (Size newMax)
 
void resize (Size newSize)
 
const T & operator[] (Size index) const
 
T & operator[] (Size index)
 
T & getValuei (Size i)
 
const T & getValuei (Size i) const
 
T & getValueit (RandomAccessIterator i)
 
const T & getValueit (RandomAccessIterator i) const
 
void setValuei (Size i, const T &data)
 
void setValueit (RandomAccessIterator i, const T &data)
 
RandomAccessIterator getBegin () const
 
RandomAccessIterator getEnd () const
 
RandomAccessIterator begin () const
 
RandomAccessIterator end () const
 
bool operator== (const Vector< T > &v) const
 
bool operator!= (const Vector< T > &v) const
 
bool operator< (const Vector< T > &v) const
 
bool operator> (const Vector< T > &v) const
 
bool operator<= (const Vector< T > &v) const
 
bool operator>= (const Vector< T > &v) const
 
bool operator== (const T &v) const
 
bool operator!= (const T &v) const
 
bool operator< (const T &v) const
 
bool operator> (const T &v) const
 
bool operator<= (const T &v) const
 
bool operator>= (const T &v) const
 
Vector< T > & operator= (const Vector< T > &vector)
 
Vector< T > & operator= (Vector &&v)
 
template<typename C >
Vector< T > & operator= (const Vector< C > &vector)
 
Vector< T > & operator+= (const Vector< T > &vector)
 
void push (const T &data)
 insert a new data in the vector getSize() will be incremented and the memory auto managed. More...
 
T & pop ()
 retrieve the last inserted object and decrement getSize(); More...
 
void fill (const T &data)
 Fill the complete vector with the specified data. More...
 
Size getSize () const
 
Size getSizeBytes () const
 
Size getMaxSize () const
 
void clear ()
 
void reset ()
 
const T & getLast () const
 
T & getLast ()
 
const T & getFirst () const
 
T & getFirst ()
 
const T * data () const
 
T * data ()
 
const T * getData () const
 
T * getData ()
 
bool exists (const T &value) const
 
void createFromData (const T *dataTable, Size size)
 
template<typename C >
void createFromData (const C *dataTable, Size size)
 
void replaceFirst (const T &search, const T &data)
 
void replaceAll (const T &search, const T &data)
 
void eraseFirst (const T &value)
 
void eraseAll (const T &value)
 
void eraseIndex (Size index)
 
void sortDesc ()
 
void sortAsc ()
 
template<typename Func >
void sort (Func functor)
 sort the elements of this vector using the quicksort algorithm More...
 
void copy (Vector vector, Size indexSrc, Size indexDest, Size size)
 
template<typename C >
void copy (Vector< C > vector, typename Vector< C >::Size indexSrc, Size indexDest, typename Vector< C >::Size size)
 
template<typename C >
void copy (const C *datas, Size index, Size size)
 
template<typename C >
void copy (const C *datas, Size size)
 
bool read (std::fstream *fileStream)
 read from a file stream More...
 
bool write (std::fstream *fileStream) const
 write this object as binary into a file stream More...
 
Size search (const T &data) const
 
template<typename Compare >
void quicksort (RandomAccessIterator start, RandomAccessIterator end, Compare func=Logical::less< T >)
 
template<typename C >
 Vector (const C *data, typename Vector< T >::Size size)
 
template<typename C >
 Vector (const C *data, typename Vector< T >::Size size, typename Vector< T >::Size maxSize)
 
template<typename T >
void copy (Vector< T > vector, typename Vector< T >::Size indexSrc, typename Vector< T >::Size indexDst, typename Vector< T >::Size size)
 
template<typename C >
void copy (Vector< C > vector, typename Vector< C >::Size indexSrc, typename Vector< T >::Size indexDst, typename Vector< C >::Size size)
 
template<typename T>
void createFromData (const T *dataTable, typename Vector< T >::Size size)
 
template<typename C >
void createFromData (const C *dataTable, typename Vector< T >::Size size)
 
- Public Member Functions inherited from BasicSimpleIO
bool read (std::fstream *fileStream)
 read from a file stream More...
 
bool write (std::fstream *fileStream) const
 write this object as binary into a file stream More...
 

Static Public Member Functions

template<typename C , typename D >
static void copy (C *destinationBuffer, const D *sourceBuffer, const Size &size)
 
static void copy (char *destinationBuffer, const char *sourceBuffer, const Size &size)
 
static void copy (unsigned char *destinationBuffer, const unsigned char *sourceBuffer, const Size &size)
 
static void copy (short *destinationBuffer, const short *sourceBuffer, const Size &size)
 
static void copy (unsigned short *destinationBuffer, const unsigned short *sourceBuffer, const Size &size)
 
static void copy (int *destinationBuffer, const int *sourceBuffer, const Size &size)
 
static void copy (unsigned int *destinationBuffer, const unsigned int *sourceBuffer, const Size &size)
 
static void copy (long *destinationBuffer, const long *sourceBuffer, const Size &size)
 
static void copy (unsigned long *destinationBuffer, const unsigned long *sourceBuffer, const Size &size)
 
static void copy (long long *destinationBuffer, const long long *sourceBuffer, const Size &size)
 
static void copy (unsigned long long *destinationBuffer, const unsigned long long *sourceBuffer, const Size &size)
 
static void copy (float *destinationBuffer, const float *sourceBuffer, const Size &size)
 
static void copy (double *destinationBuffer, const double *sourceBuffer, const Size &size)
 
static void copy (wchar_t *destinationBuffer, const wchar_t *sourceBuffer, const Size &size)
 

Static Public Attributes

static Size overflow = Size( -1 )
 

Protected Types

enum  ctor { null }
 

Protected Member Functions

 Vector (ctor)
 
void _allocateNoNull (const Size &newMax)
 
void _allocateNoNullDelete (const Size &newMax)
 
void _extendBuffer (const Size &newSizeNeeded)
 
void swap (Size index1, Size index2)
 
void swap (RandomAccessIterator index1, RandomAccessIterator index2)
 
void assign (Size index1, Size index2)
 
void _updateIterators ()
 
void _erasei (Size index)
 
void _eraseit (RandomAccessIterator it)
 

Protected Attributes

Size size
 
Size maxSize
 
T * dataTable
 
RandomAccessIterator iteratorEnd
 

Member Typedef Documentation

template<typename T = int>
typedef T Vector< T >::elemType
template<typename T = int>
typedef T* Vector< T >::RandomAccessIterator
template<typename T = int>
typedef unsigned long long Vector< T >::Size

Member Enumeration Documentation

template<typename T = int>
enum Vector::ctor
protected
Enumerator
null 

Constructor & Destructor Documentation

template<typename T >
Vector< T >::Vector ( void  )
template<typename T >
Vector< T >::Vector ( Size  size,
Size  maxSize 
)
template<typename T >
Vector< T >::Vector ( Size  maxSize)
template<typename T >
Vector< T >::Vector ( const Vector< T > &  vector)
template<typename T >
template<typename C >
Vector< T >::Vector ( const Vector< C > &  vector)
template<typename T >
Vector< T >::Vector ( Vector< T > &&  v)
template<typename T >
template<typename C , size_t N>
Vector< T >::Vector ( const C(&)  data[N])
template<typename T = int>
template<typename C >
Vector< T >::Vector ( const C *  data,
Size  maxSize 
)
template<typename T = int>
template<typename C >
Vector< T >::Vector ( const C *  data,
Size  size,
Size  maxSize 
)
template<typename T >
Vector< T >::~Vector ( void  )
template<typename T >
Vector< T >::Vector ( ctor  )
protected
template<typename T = int>
template<typename C >
Vector< T >::Vector ( const C *  data,
typename Vector< T >::Size  size 
)
template<typename T = int>
template<typename C >
Vector< T >::Vector ( const C *  data,
typename Vector< T >::Size  size,
typename Vector< T >::Size  maxSize 
)

Member Function Documentation

template<typename T >
void Vector< T >::_allocateNoNull ( const Size newMax)
protected
template<typename T >
void Vector< T >::_allocateNoNullDelete ( const Size newMax)
protected
template<typename T >
void Vector< T >::_erasei ( Size  index)
protected
template<typename T >
void Vector< T >::_eraseit ( RandomAccessIterator  it)
protected
template<typename T >
void Vector< T >::_extendBuffer ( const Size newSizeNeeded)
protected
template<typename T >
void Vector< T >::_updateIterators ( )
protected
template<typename T = int>
void Vector< T >::allocate ( Size  newMax)
template<typename T = int>
void Vector< T >::assign ( Size  index1,
Size  index2 
)
protected
template<typename T >
Vector< T >::RandomAccessIterator Vector< T >::begin ( ) const
template<typename T >
void Vector< T >::clear ( )
template<typename T = int>
template<typename T >
void Vector< T >::copy ( Vector< T >  vector,
typename Vector< T >::Size  indexSrc,
typename Vector< T >::Size  indexDst,
typename Vector< T >::Size  size 
)
template<typename T = int>
template<typename C >
void Vector< T >::copy ( Vector< C >  vector,
typename Vector< C >::Size  indexSrc,
typename Vector< T >::Size  indexDst,
typename Vector< C >::Size  size 
)
template<typename T = int>
void Vector< T >::copy ( Vector< T >  vector,
Size  indexSrc,
Size  indexDest,
Size  size 
)
template<typename T = int>
template<typename C >
void Vector< T >::copy ( Vector< C >  vector,
typename Vector< C >::Size  indexSrc,
Size  indexDest,
typename Vector< C >::Size  size 
)
template<typename T >
template<typename C >
void Vector< T >::copy ( const C *  datas,
Size  index,
Size  size 
)
template<typename T >
template<typename C >
void Vector< T >::copy ( const C *  datas,
Size  size 
)
template<typename T >
template<typename C , typename D >
void Vector< T >::copy ( C *  destinationBuffer,
const D *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( char *  destinationBuffer,
const char *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( unsigned char *  destinationBuffer,
const unsigned char *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( short *  destinationBuffer,
const short *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( unsigned short *  destinationBuffer,
const unsigned short *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( int *  destinationBuffer,
const int *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( unsigned int *  destinationBuffer,
const unsigned int *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( long *  destinationBuffer,
const long *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( unsigned long *  destinationBuffer,
const unsigned long *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( long long *  destinationBuffer,
const long long *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( unsigned long long *  destinationBuffer,
const unsigned long long *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( float *  destinationBuffer,
const float *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( double *  destinationBuffer,
const double *  sourceBuffer,
const Size size 
)
static
template<typename T >
void Vector< T >::copy ( wchar_t *  destinationBuffer,
const wchar_t *  sourceBuffer,
const Size size 
)
static
template<typename T = int>
void Vector< T >::createFromData ( const T *  dataTable,
Size  size 
)
template<typename T = int>
template<typename C >
void Vector< T >::createFromData ( const C *  dataTable,
Size  size 
)
template<typename T = int>
template<typename T>
void Vector< T >::createFromData ( const T *  dataTable,
typename Vector< T >::Size  size 
)
template<typename T = int>
template<typename C >
void Vector< T >::createFromData ( const C *  dataTable,
typename Vector< T >::Size  size 
)
template<typename T >
const T * Vector< T >::data ( ) const
template<typename T >
T * Vector< T >::data ( )
template<typename T >
Vector< T >::RandomAccessIterator Vector< T >::end ( ) const
template<typename T>
void Vector< T >::eraseAll ( const T &  value)
template<typename T>
void Vector< T >::eraseFirst ( const T &  value)
template<typename T = int>
void Vector< T >::eraseIndex ( Size  index)
template<typename T>
bool Vector< T >::exists ( const T &  value) const
template<typename T>
void Vector< T >::fill ( const T &  data)

Fill the complete vector with the specified data.

Parameters
datadata to be copied in the whole vector.
template<typename T >
Vector< T >::RandomAccessIterator Vector< T >::getBegin ( ) const
template<typename T >
const T * Vector< T >::getData ( ) const
template<typename T >
T * Vector< T >::getData ( )
template<typename T >
Vector< T >::RandomAccessIterator Vector< T >::getEnd ( ) const
template<typename T >
const T & Vector< T >::getFirst ( ) const
template<typename T >
T & Vector< T >::getFirst ( )
template<typename T >
const T & Vector< T >::getLast ( ) const
template<typename T >
T & Vector< T >::getLast ( )
template<typename T >
Vector< T >::Size Vector< T >::getMaxSize ( ) const
template<typename T >
Vector< T >::Size Vector< T >::getSize ( ) const
template<typename T >
Vector< T >::Size Vector< T >::getSizeBytes ( ) const
template<typename T = int>
T& Vector< T >::getValuei ( Size  i)
template<typename T = int>
const T& Vector< T >::getValuei ( Size  i) const
template<typename T >
T & Vector< T >::getValueit ( RandomAccessIterator  i)
template<typename T >
const T & Vector< T >::getValueit ( RandomAccessIterator  i) const
template<typename T >
bool Vector< T >::iterate ( RandomAccessIterator it,
elemType **  e 
)
template<typename T>
bool Vector< T >::operator!= ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator!= ( const T &  v) const
template<typename T>
Vector< T > & Vector< T >::operator+= ( const Vector< T > &  vector)
template<typename T>
bool Vector< T >::operator< ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator< ( const T &  v) const
template<typename T>
bool Vector< T >::operator<= ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator<= ( const T &  v) const
template<typename T>
Vector< T > & Vector< T >::operator= ( const Vector< T > &  vector)
template<typename T>
Vector< T > & Vector< T >::operator= ( Vector< T > &&  v)
template<typename T >
template<typename C >
Vector< T > & Vector< T >::operator= ( const Vector< C > &  vector)
template<typename T>
bool Vector< T >::operator== ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator== ( const T &  v) const
template<typename T>
bool Vector< T >::operator> ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator> ( const T &  v) const
template<typename T>
bool Vector< T >::operator>= ( const Vector< T > &  v) const
template<typename T>
bool Vector< T >::operator>= ( const T &  v) const
template<typename T = int>
const T& Vector< T >::operator[] ( Size  index) const
template<typename T = int>
T& Vector< T >::operator[] ( Size  index)
template<typename T >
T & Vector< T >::pop ( )

retrieve the last inserted object and decrement getSize();

Returns
last inserted data
template<typename T>
void Vector< T >::push ( const T &  data)

insert a new data in the vector getSize() will be incremented and the memory auto managed.

Parameters
datadata to be inserted.
template<typename T >
template<typename Compare >
void Vector< T >::quicksort ( RandomAccessIterator  start,
RandomAccessIterator  end,
Compare  func = Logical::less<T> 
)
template<typename T >
bool Vector< T >::read ( std::fstream *  fileStream)

read from a file stream

Parameters
fileStreamstream used to read load this object
Returns
boolean to know if the operation is a success of not.
template<typename T>
void Vector< T >::replaceAll ( const T &  search,
const T &  data 
)
template<typename T>
void Vector< T >::replaceFirst ( const T &  search,
const T &  data 
)
template<typename T = int>
void Vector< T >::reserve ( Size  newMax)
template<typename T >
void Vector< T >::reset ( )
template<typename T = int>
void Vector< T >::resize ( Size  newSize)
template<typename T>
Vector< T >::Size Vector< T >::search ( const T &  data) const
template<typename T = int>
void Vector< T >::setValuei ( Size  i,
const T &  data 
)
template<typename T>
void Vector< T >::setValueit ( RandomAccessIterator  i,
const T &  data 
)
template<typename T >
template<typename Func >
void Vector< T >::sort ( Func  functor)

sort the elements of this vector using the quicksort algorithm

Parameters
functorFunctor with operator () overloaded with : bool operator()(const T & v1, const T & v2) const;
template<typename T >
void Vector< T >::sortAsc ( )
template<typename T >
void Vector< T >::sortDesc ( )
template<typename T = int>
void Vector< T >::swap ( Size  index1,
Size  index2 
)
protected
template<typename T >
void Vector< T >::swap ( RandomAccessIterator  index1,
RandomAccessIterator  index2 
)
protected
template<typename T >
bool Vector< T >::write ( std::fstream *  fileStream) const

write this object as binary into a file stream

Parameters
fileStreamstream used to write this object
Returns
boolean to know if the operation is a success of not.

Member Data Documentation

template<typename T = int>
T* Vector< T >::dataTable
protected
template<typename T = int>
RandomAccessIterator Vector< T >::iteratorEnd
protected
template<typename T = int>
Size Vector< T >::maxSize
protected
template<typename T = int>
Vector< T >::Size Vector< T >::overflow = Size( -1 )
static
template<typename T = int>
Size Vector< T >::size
protected

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