SHOGUN
v1.1.0
|
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.
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 () |
virtual const char * | get_name () const |
virtual const char * | get_array_name () const |
void | set_array_name (const char *p_name) |
int32_t | get_array_size () const |
int32_t | get_dim1 () |
void | zero () |
void | set_const (T const_elem) |
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 |
Protected Attributes | |
T * | array |
int32_t | array_size |
bool | free_array |
const char * | name |
DECLARE_ARRAY_STATISTICS |
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 | ||
) |
void clear_array | ( | ) |
void display_array | ( | ) | const |
display array
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
void display_size | ( | ) | const |
display array size
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
const T& element | ( | int32_t | idx1 | ) | const |
T& element | ( | int32_t | index | ) |
T& element | ( | T * | p_array, |
int32_t | index | ||
) |
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!
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
virtual const char* get_array_name | ( | ) | const [virtual] |
int32_t get_array_size | ( | ) | const |
int32_t get_dim1 | ( | ) |
get array size (including granularity buffer)
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
const T& get_element | ( | int32_t | index | ) | const |
virtual const char* get_name | ( | ) | const [virtual] |
const 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
index |
T& operator[] | ( | int32_t | index | ) |
bool resize_array | ( | int32_t | n | ) |
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 set_array_name | ( | const char * | p_name | ) |
set name
p_name | new name |
Reimplemented in CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, CArray2< int32_t >, CArray3< T >, and CArray3< float64_t >.
void set_const | ( | T | const_elem | ) |
set array with a constant
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
bool set_element | ( | const T & | p_element, |
int32_t | index | ||
) |
void zero | ( | ) |
zero array
Reimplemented in CArray3< T >, CArray3< float64_t >, CArray2< T >, CArray2< CPlifBase * >, CArray2< float64_t >, CArray2< float32_t >, and CArray2< int32_t >.
int32_t array_size [protected] |
DECLARE_ARRAY_STATISTICS [protected] |
bool free_array [protected] |