template class Vector { public: Vector(); Vector( const unsigned ) throw ( bad_alloc ); Vector( const unsigned, const T& ) throw ( bad_alloc ); Vector( const Vector & ) throw ( bad_alloc ); ~Vector(); void assign( const unsigned, const T& ) throw ( out_of_range ); T& at( const unsigned ) const throw ( out_of_range ); unsigned capacity() const; void clear(); bool empty() const; void insert( const unsigned, const T& ) throw ( bad_alloc, out_of_range ); T& operator[]( const unsigned ) const throw ( out_of_range ); const Vector &operator=( const Vector& ) throw ( bad_alloc ); void push_back( const T& ) throw ( bad_alloc ); void resize( const unsigned, const T& = T() ) throw ( bad_alloc ); unsigned size() const; void sort(); void remove( const unsigned ) throw ( out_of_range ); private: T* contents; unsigned sz; unsigned cap; void increaseCapacity() throw ( bad_alloc ); }; // Vector class