For the Insert() method, we need to increase the capacity of the m_items variable each time we insert a new item. After that, we need to iterate each item of the old m_items variable and then assign them to the new m_items variable. We also need to ensure where we put the new item stated by the index variable passed by the user. The implementation should be as follows:
void List::Insert(int index, int val){ // Check if the index is out of bound if(index < 0 || index > m_count) return; // Copy the current array int * oldArray = m_items; // Increase the array length m_count++; // Initialize a new array m_items = new int[m_count]; // Fill the new array with inserted data for(int i=0, j=0; i < m_count; ++i) ...