#include <iostream>
template <typename T>
void resizeArray(T*& array, size_t oldSize, size_t newSize) {
T* newArray = new T[newSize];
size_t copySize = (oldSize < newSize) ? oldSize : newSize;
for (size_t i = 0; i < copySize; ++i) {
newArray[i] = array[i];
}
delete[] array;
array = newArray;
}
int main() {
const size_t initialSize = 5;
int* myArray = new int[initialSize];
// Initialize the array with some values
for (size_t i = 0; i < initialSize; ++i) {
myArray[i] = i;
}
// Print the original array
std::cout << "Original Array: ";
for (size_t i = 0; i < initialSize; ++i) {
std::cout << myArray[i] << " ";
}
std::cout << std::endl;
// Resize the array to a larger size
const size_t newSize = 8;
resizeArray(myArray, initialSize, newSize);
// Print the resized array
std::cout << "Resized Array: ";
for (size_t i = 0; i < newSize; ++i) {
std::cout << myArray[i] << " ";
}
std::cout << std::endl;
// Clean up the allocated memory
delete[] myArray;
return 0;
}