template <classT> void arrayList<T>::trimToSize() { int targetLength = std::max(listSize, 1); if (arrayLength == targetLength) { return; }
T *temp = new T[targetLength]; for (int i = 0; i < listSize; ++i) { temp[i] = element[i]; } delete[] element; element = temp; arrayLength = targetLength; }
时间复杂度为 $O(listSize)$
11.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
template <classT> void arrayList<T>::push_back(const T &theElement) { if (listSize == arrayLength) { int newLength = (arrayLength == 0) ? 1 : 2 * arrayLength; T *temp = new T[newLength]; for (int i = 0; i < listSize; ++i) { temp[i] = element[i]; } delete[] element; element = temp; arrayLength = newLength; } element[listSize++] = theElement; }