20 template <
class T>
class CDynamicArray;
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;
352 p = (T*) realloc(
array, new_num_elements*
sizeof(T));
354 if (p || new_num_elements==0)
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)
398 array=SG_MALLOC(T, p_array_size);
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)
424 array=SG_MALLOC(T, p_array_size);
426 array=(T*) malloc(p_array_size*
sizeof(T));
427 memcpy(
array, p_array, p_array_size*
sizeof(T));
469 array[i]=const_element;
515 virtual const char*
get_name()
const {
return "DynArray"; }