Vector< T > Class Template Reference

#include <vector.h>

List of all members.

Public Member Functions

 Vector ()
 Vector (const unsigned, const T &=T()) throw ( bad_alloc )
 Vector (const Vector< T > &) throw ( bad_alloc )
 ~Vector ()
bool empty () const
unsigned size () const
unsigned capacity () const
void clear ()
void resize (const unsigned, const T &=T()) throw ( bad_alloc )
T & at (const unsigned) const throw ( out_of_range )
void assign (const unsigned, const T &) throw ( out_of_range )
void push_back (const T &) throw ( bad_alloc )
void insert (const unsigned, const T &) throw ( bad_alloc, out_of_range )
void remove (const unsigned) throw ( out_of_range )
T & operator[] (const unsigned) const throw ( out_of_range )
const Vector< T > & operator= (const Vector< T > &) throw ( bad_alloc )

Private Member Functions

void increaseCapacity () throw ( bad_alloc )

Private Attributes

T * contents
unsigned sz
unsigned cap

Detailed Description

template<typename T>
class Vector< T >

Implementation of a resizable Vector ADT using dynamically allocated C-style arrays

Author:
Mark Maloof (maloof@cs)
Version:
1.2, 4/13/11

Constructor & Destructor Documentation

template<typename T >
Vector< T >::Vector (  )  [inline]

Default constructor.

template<typename T >
Vector< T >::Vector ( const unsigned  sz,
const T &  object = T() 
) throw ( bad_alloc ) [inline]

Constructor for initializing a vector to a fixed size with its components initialized to a specified object. If there is no such object, then the default is used.

Parameters:
sz the size of the vector
object the initial object for the components
Exceptions:
bad_alloc if memory cannot be allocated
template<typename T >
Vector< T >::Vector ( const Vector< T > &  vector  )  throw ( bad_alloc ) [inline]

Copy constructor. Make a deep copy of the specified vector.

Parameters:
vector the vector to be copied
Exceptions:
bad_alloc if memory cannot be allocated
template<typename T >
Vector< T >::~Vector (  )  [inline]

Destructor.


Member Function Documentation

template<typename T >
void Vector< T >::assign ( const unsigned  i,
const T &  object 
) throw ( out_of_range ) [inline]

Assigns the object to the specified position in the vector.

Parameters:
i the position to be assigned.
object the object to be stored in the vector.
Exceptions:
out_of_range if index parameter is out of bounds.
template<typename T >
T & Vector< T >::at ( const unsigned  i  )  const throw ( out_of_range ) [inline]

Returns a reference to the object stored at a given position in the vector.

Parameters:
i the object's location.
Returns:
a reference to the object.
Exceptions:
out_of_range if index parameter is out of bounds.
template<typename T >
unsigned Vector< T >::capacity (  )  const [inline]

Returns the capacity of the vector, which is the number of elements that the vector can store before increasing the capacity.

Returns:
an unsigned integer indicating the vector's capacity.
template<typename T >
void Vector< T >::clear (  )  [inline]

Removes the elements of the vector.

template<typename T >
bool Vector< T >::empty (  )  const [inline]

Returns true if the vector is empty; returns false otherwise.

Returns:
true if empty; false otherwise.
template<typename T >
void Vector< T >::increaseCapacity (  )  throw ( bad_alloc ) [inline, private]

Increases the capacity of the vector by doubling its current capacity.

Exceptions:
bad_alloc if memory cannot be allocated.
template<typename T >
void Vector< T >::insert ( const unsigned  i,
const T &  object 
) throw ( bad_alloc, out_of_range ) [inline]

Inserts the object at the given position. Increases capacity if necessary.

Parameters:
i the position of insertion.
object the object to be inserted.
Exceptions:
bad_alloc if memory cannot be allocated.
out_of_range if index parameter is out of bounds.
template<typename T >
const Vector< T > & Vector< T >::operator= ( const Vector< T > &  vector  )  throw ( bad_alloc ) [inline]

Returns a deep copy of the vector passed in as the parameter.

Parameters:
vector the vector to be copied.
Returns:
a copy of the vector.
Exceptions:
bad_alloc if memory cannot be allocated.
template<typename T >
T & Vector< T >::operator[] ( const unsigned  i  )  const throw ( out_of_range ) [inline]

Returns a reference to the object stored at a given position in the vector.

Parameters:
i the object's location.
Returns:
a reference to the object.
Exceptions:
out_of_range if index parameter is out of bounds.
template<typename T >
void Vector< T >::push_back ( const T &  object  )  throw ( bad_alloc ) [inline]

Adds the object to the end of the vector. Increases capacity if necessary.

Parameters:
object the object to be added to the end of the vector.
Exceptions:
bad_alloc if memory cannot be allocated.
template<typename T >
void Vector< T >::remove ( const unsigned  i  )  throw ( out_of_range ) [inline]

Removes the object stored in the given position.

Parameters:
i the position of removal.
Exceptions:
out_of_range if index parameter is out of bounds.
template<typename T >
void Vector< T >::resize ( const unsigned  newSize,
const T &  object = T() 
) throw ( bad_alloc ) [inline]

Resizes the vector to its new size. After allocating new memory and copy the contents of old memory, stores the object in any unassigned locations.

Parameters:
newSize the new size of the vector
object the object for any new, unassigned locations
Exceptions:
bad_alloc if memory cannot be allocated
template<typename T >
unsigned Vector< T >::size (  )  const [inline]

Returns the size (i.e., the number of elements) of the vector.

Returns:
an unsigned integer indicating the vector's size.

Member Data Documentation

template<typename T >
unsigned Vector< T >::cap [private]

the capacity of this vector

template<typename T >
T* Vector< T >::contents [private]

the contents of this vector

template<typename T >
unsigned Vector< T >::sz [private]

the size of this vector


The documentation for this class was generated from the following file:
Generated on Wed Apr 13 13:39:25 2011 by  doxygen 1.6.3