42 DynArray(int32_t p_resize_granularity=128,
bool tracable=
true)
49 array=SG_MALLOC(T, p_resize_granularity);
51 array=(T*) malloc(
size_t(p_resize_granularity)*
sizeof(T));
65 DynArray(T* p_array, int32_t p_array_size,
bool p_free_array,
bool p_copy_array,
bool tracable=
true)
72 set_array(p_array, p_array_size, p_array_size, p_free_array, p_copy_array);
81 DynArray(
const T* p_array, int32_t p_array_size,
bool tracable=
true)
88 set_array(p_array, p_array_size, p_array_size);
163 return &
array[index];
177 SG_SERROR(
"array index out of bounds (%d >= %d)\n",
197 array[index]=element;
202 array[index]=element;
229 array[index]=element;
295 for (int32_t i=0; i<num; i++)
297 if (
array[i] == element)
320 current_num_elements--;
340 int32_t new_num_elements=n;
351 array = (T*) realloc(
array, new_num_elements*
sizeof(T));
360 return array || new_num_elements==0;
383 inline void set_array(T* p_array, int32_t p_num_elements,
384 int32_t p_array_size,
bool p_free_array,
bool p_copy_array)
392 array=SG_MALLOC(T, p_array_size);
394 array=(T*) malloc(p_array_size*
sizeof(T));
395 memcpy(
array, p_array, p_array_size*
sizeof(T));
411 inline void set_array(
const T* p_array, int32_t p_num_elements,
412 int32_t p_array_size)
418 array=SG_MALLOC(T, p_array_size);
420 array=(T*) malloc(p_array_size*
sizeof(T));
421 memcpy(
array, p_array, p_array_size*
sizeof(T));
463 array[i]=const_element;
509 virtual const char*
get_name()
const {
return "DynArray"; }
int32_t current_num_elements
T get_element(int32_t index) const
T operator[](int32_t index) const
void shuffle(CRandom *rand)
uint64_t random(uint64_t min_value, uint64_t max_value)
bool insert_element(T element, int32_t index)
bool append_element(T element)
The CommUlongString kernel may be used to compute the spectrum kernel from strings that have been map...
int32_t get_array_size() const
void set_array(const T *p_array, int32_t p_num_elements, int32_t p_array_size)
int32_t get_num_elements() const
bool delete_element(int32_t idx)
int32_t set_granularity(int32_t g)
int32_t find_element(T element) const
void push_back(T element)
Template Dynamic array class that creates an array that can be used like a list or an array...
void clear_array(T value)
DynArray(const T *p_array, int32_t p_array_size, bool tracable=true)
virtual const char * get_name() const
static T max(T a, T b)
return the maximum of two integers
Dynamic array class for CSGObject pointers that creates an array that can be used like a list or an a...
bool set_element(T element, int32_t index)
T get_last_element() const
bool resize_array(int32_t n, bool exact_resize=false)
DynArray(T *p_array, int32_t p_array_size, bool p_free_array, bool p_copy_array, bool tracable=true)
: Pseudo random number geneartor
Template Dynamic array class that creates an array that can be used like a list or an array...
all of classes and functions are contained in the shogun namespace
void set_array(T *p_array, int32_t p_num_elements, int32_t p_array_size, bool p_free_array, bool p_copy_array)
DynArray< T > & operator=(DynArray< T > &orig)
static void swap(T &a, T &b)
swap e.g. floats a and b
T * get_element_ptr(int32_t index)
int32_t resize_granularity
T get_element_safe(int32_t index) const
void set_const(const T &const_element)
DynArray(int32_t p_resize_granularity=128, bool tracable=true)