void append(int x) {
if (size >= capacity) {
capacity = 2 * capacity; // double the capacity
int* new_arr = newint[capacity]; // make new underlying array
// twice size of old one
for(int i = 0; i < size; ++i) { // copy elements of v
new_arr[i] = arr[i]; // into new_arr
}
delete[] arr; // delete old arr
arr = new_arr; // assign new_arr
}
// What happens after here ?
assert(size < capacity);
arr[size] = x;
size++;
}