CArray< T > Class Template Reference


Detailed Description

template<class T>
class CArray< T >

Template class Array implements a dense one dimensional array.

Note that depending on compile options everything will be inlined, such that this is as high performance array implementation without error checking.

Definition at line 77 of file Array.h.

Inheritance diagram for CArray< T >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CArray (int32_t initial_size=1)
 CArray (T *p_array, int32_t p_array_size, bool p_free_array=true, bool p_copy_array=false)
 CArray (const T *p_array, int32_t p_array_size)
virtual ~CArray ()
const char * get_name () const
void set_name (const char *p_name)
int32_t get_array_size () const
int32_t get_dim1 ()
void zero ()
const T & get_element (int32_t index) const
bool set_element (const T &p_element, int32_t index)
const T & element (int32_t idx1) const
T & element (int32_t index)
T & element (T *p_array, int32_t index)
bool resize_array (int32_t n)
T * get_array ()
void set_array (T *p_array, int32_t p_array_size, bool p_free_array=true, bool copy_array=false)
void set_array (const T *p_array, int32_t p_array_size)
void clear_array ()
const T & operator[] (int32_t index) const
T & operator[] (int32_t index)
CArray< T > & operator= (const CArray< T > &orig)
void display_size () const
void display_array () const
virtual const char * get_name ()

Protected Attributes

T * array
int32_t array_size
bool free_array
const char * name
 DECLARE_ARRAY_STATISTICS

Constructor & Destructor Documentation

template<class T>
CArray< T >::CArray ( int32_t  initial_size = 1  ) 

constructor

Parameters:
initial_size initial size of array

Definition at line 84 of file Array.h.

template<class T>
CArray< T >::CArray ( T *  p_array,
int32_t  p_array_size,
bool  p_free_array = true,
bool  p_copy_array = false 
)

constructor

Parameters:
p_array another array
p_array_size size of another array
p_free_array if array must be freed
p_copy_array if array must be copied

Definition at line 100 of file Array.h.

template<class T>
CArray< T >::CArray ( const T *  p_array,
int32_t  p_array_size 
)

constructor

Parameters:
p_array another array
p_array_size size of another array

Definition at line 113 of file Array.h.

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

Definition at line 120 of file Array.h.


Member Function Documentation

template<class T>
void CArray< T >::clear_array (  ) 

clear the array (with zeros)

Definition at line 306 of file Array.h.

template<class T>
void CArray< T >::display_array (  )  const
template<class T>
void CArray< T >::display_size (  )  const
template<class T>
T& CArray< T >::element ( T *  p_array,
int32_t  index 
)

get element of given array at given index

Parameters:
p_array another array
index index
Returns:
element of given array at given index

Definition at line 226 of file Array.h.

template<class T>
T& CArray< T >::element ( int32_t  index  ) 

get element at given index

Parameters:
index index
Returns:
element at given index

Definition at line 211 of file Array.h.

template<class T>
const T& CArray< T >::element ( int32_t  idx1  )  const

get element at given index

Parameters:
idx1 index
Returns:
element at given index

Definition at line 200 of file Array.h.

template<class T>
T* CArray< T >::get_array (  ) 

call get_array just before messing with it DO NOT call any [],resize/delete functions after get_array(), the pointer may become invalid!

Returns:
the array

Reimplemented in CArray2< T >, CArray3< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< int32_t >, CArray2< char >, and CArray3< float64_t >.

Definition at line 260 of file Array.h.

template<class T>
int32_t CArray< T >::get_array_size (  )  const

get array size (including granularity buffer)

Returns:
total array size

Definition at line 148 of file Array.h.

template<class T>
int32_t CArray< T >::get_dim1 (  ) 

get array size (including granularity buffer)

Returns:
total array size

Reimplemented in CArray2< T >, CArray3< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< int32_t >, CArray2< char >, and CArray3< float64_t >.

Definition at line 157 of file Array.h.

template<class T>
const T& CArray< T >::get_element ( int32_t  index  )  const

get array element at index

Parameters:
index index
Returns:
array element at index

Definition at line 174 of file Array.h.

template<class T>
virtual const char* CArray< T >::get_name (  )  [virtual]
Returns:
object name

Reimplemented in CArray2< T >, CArray3< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< int32_t >, CArray2< char >, and CArray3< float64_t >.

Definition at line 369 of file Array.h.

template<class T>
const char* CArray< T >::get_name (  )  const [virtual]

get name

Returns:
name

Implements CSGObject.

Definition at line 133 of file Array.h.

template<class T>
CArray<T>& CArray< T >::operator= ( const CArray< T > &  orig  ) 

operator overload for array assignment

Parameters:
orig original array
Returns:
new array

Reimplemented in CArray3< T >.

Definition at line 344 of file Array.h.

template<class T>
T& CArray< T >::operator[] ( int32_t  index  ) 

operator overload for array read only access

DOES NOT DO ANY BOUNDS CHECKING

Parameters:
index 
Returns:
element at index

Definition at line 333 of file Array.h.

template<class T>
const T& CArray< T >::operator[] ( int32_t  index  )  const

operator overload for array read only access use set_element() for write access (will also make the array dynamically grow)

DOES NOT DO ANY BOUNDS CHECKING

Parameters:
index 
Returns:
element at index

Definition at line 320 of file Array.h.

template<class T>
bool CArray< T >::resize_array ( int32_t  n  ) 

resize array

Parameters:
n new size
Returns:
if resizing was successful

Definition at line 239 of file Array.h.

template<class T>
void CArray< T >::set_array ( const T *  p_array,
int32_t  p_array_size 
)

set the array pointer and free previously allocated memory

Parameters:
p_array another array
p_array_size size of another array

Definition at line 295 of file Array.h.

template<class T>
void CArray< T >::set_array ( T *  p_array,
int32_t  p_array_size,
bool  p_free_array = true,
bool  copy_array = false 
)

set the array pointer and free previously allocated memory

Parameters:
p_array another array
p_array_size size of another array
p_free_array if array must be freed
copy_array if array must be copied

Definition at line 273 of file Array.h.

template<class T>
bool CArray< T >::set_element ( const T &  p_element,
int32_t  index 
)

set array element at index 'index' return false in case of trouble

Parameters:
p_element array element to set
index index
Returns:
if setting was successful

Definition at line 187 of file Array.h.

template<class T>
void CArray< T >::set_name ( const char *  p_name  ) 

set name

Parameters:
p_name new name

Reimplemented in CArray2< T >, CArray3< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< int32_t >, CArray2< char >, and CArray3< float64_t >.

Definition at line 139 of file Array.h.

template<class T>
void CArray< T >::zero (  ) 

Member Data Documentation

template<class T>
T* CArray< T >::array [protected]

memory for dynamic array

Definition at line 373 of file Array.h.

template<class T>
int32_t CArray< T >::array_size [protected]

the number of potentially used elements in array

Definition at line 375 of file Array.h.

template<class T>
CArray< T >::DECLARE_ARRAY_STATISTICS [protected]

array statistics

Definition at line 381 of file Array.h.

template<class T>
bool CArray< T >::free_array [protected]

if array must be freed

Definition at line 377 of file Array.h.

template<class T>
const char* CArray< T >::name [protected]

array's name

Definition at line 379 of file Array.h.


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

SHOGUN Machine Learning Toolbox - Documentation