Write a class vector (array) which has following methods:
- constructor which can create a vector in n dimensions
- print a vector
- print a vector from element n to element m (both inclusive)
- make copy of a vector
- swap two vectors
- add/subtract two vectors (element by element), vectors can be of
different sizes. In case corresponding element does not exist then zero
is added/subtracted
- multiply two vectors (element by element), vectors can be of different
sizes. In case corresponding element does not exist then it is
multiplied by 1
- divide two vectors (element by element), vectors can be of different
sizes. In case corresponding element does not exist or is zero then it
is divided by 1
- dot product of two vectors (vectors must be of the same size)
- cross product of two vectors (both the vectors must be of dimension 3)
- scalar vector multiplication (multiply each element of the vector with
the scalar), also known as scaling of a vector
- sum of elements of a vector
- max/min element of a vector
- write helper methods as required
- the methods may return a scaler/vector as the case may be
- each method should give an error if incorrect arguments are supplied