void array_append(CArray & array, int key) { if (array.size >= array.capacity) { array_recap(array, 2 * array.capacity); } array.buff[array.size] = key; array.size++; }
void array_append(CArray *array,int element){ if (array->size >= array->capacity ) { array_recap(array, array->capacity*2); } array->p[array->size] = element; array->size++; };
void array_copy(CArray *src,CArray *dst){ array_recap(dst, src->capacity); for (int i = 0; i < src->size; ++i) { array_append(dst, *src->p+i); } };
void array_insert(CArray & array, int index, int key) { if (array.size >= array.capacity) { array_recap(array, 2 * array.capacity); } for (int i = array.size - 1; i >= index; i--) { array.buff[i + 1] = array.buff[i]; } array.buff[index] = key; array.size++; }
int main() { CArray array; array_initial(&array); array_recap(&array, 10); assert(array_capacity(&array) == 10); ////////////////////////////////////////////////////////////////////////// for (int i = 0; i < 20; ++i) { array_append(&array, i); } assert(array_size(&array) == 20); // printarray(&array); for (int i = 0; i < array_size(&array); ++i) { assert(*array_at(&array, i) == i); } ////////////////////////////////////////////////////////////////////////// CArray array2, array3; array_initial(&array2); array_initial(&array3); array_copy(&array, &array2); assert(array_compare(&array, &array2) == true); array_copy(&array, &array3); assert(array_compare(&array, &array3) == true); // printarray(&array2); ////////////////////////////////////////////////////////////////////////// array_insert(&array2, 2, 3); assert(array_compare(&array, &array2) == false); // printarray(&array2); ////////////////////////////////////////////////////////////////////////// *array_at(&array3, 2) = 5; assert(array_compare(&array, &array3) == false); // printarray(&array3); ////////////////////////////////////////////////////////////////////////// array_destroy(&array); array_destroy(&array2); array_destroy(&array3); return 0; }