Lab 10: Week of Oct 17-21
 


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