Using an array to implement the backend for a list, create a list class that can contain integers and implements all of the following funtionality via the following functions:
- List() - the constructor
- List (const List& 1) - a copy constructor
- Void operator=(const List& 1) - a cope constructor
- void FIrst () - navigate to begginig of list
- void Last () - navigates to end of list
- void SetPos(int pos) - navigates to specific position in list
- void Prev() navigates to previous element in the list
- void Next () - navigates to next element in list
- int GetPos () - returns the location of the current element (or -1)
- int GetSize () - returns the size of (number of elements in) the list
- void InsterBefore(int data) - inserts an item before the current element
- void InsterAfter(int data) inserts an item after the current element
- void Remove () - removes the current element
- void Replace (int data) - replaces the current element with specified value
- bool IsEmpty()- returns if list is empty
- bool IsFull() - returns if list is full
- List operator +(const List& 1) const - returns the concatenation of two lists
- bool operator==(const List& 1) const- returns if two lists are equal (by value)
- boo operator!=(const List& 1) const - returns if two lists are not equal (by value)
- ostream& operator<<(ostream& out, const List& 1)- returns a string representation of the entire list