21 template <
class T>
class CDynamicArray;
43 DynArray(int32_t p_resize_granularity=128,
bool tracable=
true)
52 array=(T*) calloc(p_resize_granularity,
sizeof(T));
66 DynArray(T* p_array, int32_t p_array_size,
bool p_free_array,
bool p_copy_array,
bool tracable=
true)
73 set_array(p_array, p_array_size, p_array_size, p_free_array, p_copy_array);
82 DynArray(
const T* p_array, int32_t p_array_size,
bool tracable=
true)
89 set_array(p_array, p_array_size, p_array_size);
164 return &
array[index];
178 SG_SERROR(
"array index out of bounds (%d >= %d)\n",
198 array[index]=element;
203 array[index]=element;
230 array[index]=element;
290 for (int32_t i=0; i<num; i++)
292 if (
array[i] == element)
315 memset(&
array[last_element_idx], 0,
sizeof(T));
343 p = (T*) realloc(
array, new_num_elements*
sizeof(T));
350 (new_num_elements-num_elements)*
sizeof(T));
352 else if (n+1<new_num_elements)
354 memset(&
array[n+1], 0,
355 (new_num_elements-n-1)*
sizeof(T));
389 inline void set_array(T* p_array, int32_t p_num_elements,
390 int32_t p_array_size,
bool p_free_array,
bool p_copy_array)
400 array=(T*) malloc(p_array_size*
sizeof(T));
401 memcpy(
array, p_array, p_array_size*
sizeof(T));
417 inline void set_array(
const T* p_array, int32_t p_num_elements,
418 int32_t p_array_size)
426 array=(T*) malloc(p_array_size*
sizeof(T));
427 memcpy(
array, p_array, p_array_size*
sizeof(T));
459 array[i]=const_element;
505 inline virtual const char*
get_name()
const {
return "DynArray"; }