To remove an element at a given position in a sorted array, shift
all the elements above it down one position.
void erase(int a[], int& n, int index) {
// function:
// Removes key at a[index], shifting other values down as necessary.
// Updates number of elements in a.
// parameters:
// a inout array of values.
// n inout number of values in a, a[0]..a[n-1]
// index in position to delete.
// returns: nothing
// Move all elements up down position. i is destination.
for (int i=index; i<n; i++) {
a[i] = a[i+1];
}
n--; // update count of items in a
return;
}
Exercises
- Rewrite this using pointers.