SCPPNT::Vector< T > Class Template Reference

Simple concrete vector class for numerical computation. More...

#include <vec.h>

List of all members.

Public Types

typedef Subscript size_type
 Subscript type.
typedef T value_type
 Type of elements stored in vector.
typedef T element_type
 Type of elements stored in vector.
typedef T & reference
 Reference to type stored in vector.
typedef const T & const_reference
 Reference to type stored in constant vector.
typedef T * pointer
 Pointer to type stored in vector.
typedef T * iterator
 Iterator over elements in vector.
typedef const T * const_iterator
 Iterator over elements in constant vector.

Public Member Functions

Subscript lbound () const
 Returns lower bound of subscript.
iterator begin ()
 Return iterator pointing to first element of vector.
iterator end ()
 Return iterator pointing to one past last element of vector.
const_iterator begin () const
 Return iterator pointing to first element of constant vector.
const_iterator end () const
 Return iterator pointing to one past last element of constant vector.
 ~Vector ()
 Destructor.
 Vector ()
 Default constructor.
 Vector (Subscript N)
 Construct vector of given size, do not initialize.
 Vector (const Vector< T > &A)
 Copy constructor.
 Vector (Subscript N, const T &value)
 Constructor which assigns all elements to a particular value.
 Vector (Subscript N, const std::string &s)
 Constructor that reads elements from a string.
template<class IT>
 Vector (IT begin, IT end)
 Create a vector and assign elements from an iterator.
Vector< T > & newsize (Subscript N)
 Resize vector (current elements are not retained).
Vector< T > & operator= (const Vector< T > &A)
 Assignment from vector.
Vector< T > & operator= (const T &scalar)
 Assign all elements to be equal to a scalar.
Vector< T > & operator+= (const Vector< T > &rhs)
 Add vector rhs to vector.
Vector< T > & operator+= (const T &value)
 Add scalar to elements of vector.
Vector< T > & operator-= (const Vector< T > &rhs)
 Subtract vector rhs from vector.
Vector< T > & operator-= (const T &value)
 Subtract scalar from elements of vector.
Vector< T > & operator *= (const Vector< T > &rhs)
 Multiply each element of vector by corresponding element in rhs (element-wise multiply).
Vector< T > & operator *= (const T &value)
 Multiply each element of vector by scalar.
Vector< T > & operator/= (const T &value)
 Divide each element of vector by corresponding element in rhs (element-wise divide).
Subscript dim () const
 Return number of elements in vector.
Subscript size () const
 Return number of elements in vector.
reference operator() (Subscript i)
 One-based subscripting (v(1) returns first element of v).
const_reference operator() (Subscript i) const
 One-based subscripting for constant vector.
reference operator[] (Subscript i)
 Zero-based subscripting (v[0] returns first element of v).
const_reference operator[] (Subscript i) const
 Zero-based subscripting for constant vector.

Protected Member Functions

void initialize (Subscript N)
 Allocate storage for vector.
void copy (const T *v)
 Assign elements of vector from array v.
void set (const T &val)
 Set all elements of vector equal to val.
void destroy ()
 Release storage allocated for vector.

Protected Attributes

T * v_
 Pointer to contents of vector.
T * vm1_
 Pointer adjustment for optimizied 1-based indexing.
Subscript n_
 Number of elements in vector.


Detailed Description

template<class T>
class SCPPNT::Vector< T >

Simple concrete vector class for numerical computation.

Templated numerical vector class based on Template Numerical Toolkit Vector class. Element access through 0-based [i] and 1-based (i) indexing, and iterators.

This class adds the following to the TNT Matrix class:

  1. Assignment operators (+=, -=, *=, /=)
  2. Errors result in an exception being thrown rather than the program being aborted.

Definition at line 99 of file vec.h.


Constructor & Destructor Documentation

template<class T>
SCPPNT::Vector< T >::Vector ( Subscript  N,
const std::string &  s 
) [inline]

Constructor that reads elements from a string.

Constructor that reads elements from a string

Parameters:
N Number of elements in vector.
s String containing initial elements of matrix in row-major order separated by white space.

Definition at line 396 of file vec.h.

References SCPPNT::Vector< T >::initialize(), and SCPPNT::Vector< T >::v_.

00397                                                                      :
00398     v_(0), vm1_(0), n_(0)
00399   {
00400     initialize(N);
00401     std::istrstream ins(s.c_str());
00402 
00403     Subscript i;
00404 
00405     for (i=0; i<N; i++)
00406       ins >> v_[i];
  }

Here is the call graph for this function:

template<class T>
template<class IT>
SCPPNT::Vector< T >::Vector ( IT  begin,
IT  end 
) [inline]

Create a vector and assign elements from an iterator.

Parameters:
begin Iterator pointing to the first element of a sequence of values assigned to elements of the vector created.
end Iterator pointing to one past last element of a sequence of values assigned to elements of the vector created.

Definition at line 166 of file vec.h.

References SCPPNT::Vector< T >::begin(), and SCPPNT::Vector< T >::initialize().

00166                                                 :
00167       v_(0)
00168     {
00169 #ifndef BOOST_MSVC
00170       // "typename" keyword added (ww, 12-2-2007)
00171       typename std::iterator_traits<IT>::difference_type N = std::distance(begin, end);
00172 #else
00173       // std::iterator_traits<IT>::difference_type does not compile
00174       // with Microsoft Visual C++ 6.
00175       unsigned long N = std::distance(begin, end);
00176 #endif
00177       initialize(N);
00178 
00179       iterator i = this->begin();
00180       while (N--)
00181       {
00182         *i = *begin;
00183         ++i;
00184         ++begin;
00185       }
    }

Here is the call graph for this function:


The documentation for this class was generated from the following file:
Generated on Tue Dec 18 23:34:50 2007 for SCPPNT by  doxygen 1.5.4