![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsVectorSet.hpp 00003 ******************************************************************************/ 00009 /****************************************************************************** 00010 SUKITTI PUNAK (07/12/2005) 00011 UPDATE (08/18/2010) 00012 ******************************************************************************/ 00013 #ifndef TAPs_VECTOR_SET_HPP 00014 #define TAPs_VECTOR_SET_HPP 00015 00016 #include "../Core/TAPsMath.hpp" 00017 #include <vector> 00018 00019 BEGIN_NAMESPACE_TAPs__Simulation 00020 //============================================================================= 00021 template <typename T> 00022 class VectorSet : public std::vector<T> { 00023 //============================================================================= 00024 public: 00025 //------------------------------------------------------------------------- 00026 // Output Operator << 00027 friend std::ostream & operator<< ( std::ostream &output, VectorSet<T> const &v ) 00028 { 00029 //output << typeid(*this).name() << "( "; 00030 output << "VectorSet<" << typeid(T).name() << ">( "; 00031 int i; 00032 if ( 0 == v.size() ) { 00033 output << "Empty )"; 00034 } 00035 else { 00036 for ( i = 0; i < static_cast<int>(v.size()-1); ++i ) 00037 { 00038 output << v[i] << ", "; 00039 } 00040 output << v[i] << " )"; 00041 } 00042 return output; 00043 } 00044 //------------------------------------------------------------------------- 00045 // Constructors and Destructor 00046 VectorSet (); 00047 VectorSet ( int size ); 00048 VectorSet ( T const af[], int size ); 00049 VectorSet ( VectorSet<T> const &v ); 00050 ~VectorSet (); 00051 //------------------------------------------------------------------------- 00052 // Assignment Operator 00053 VectorSet<T> & operator= ( VectorSet<T> const &v ); 00054 //------------------------------------------------------------------------- 00055 // Arithmetic Operators 00056 VectorSet<T> operator- () const; // negation 00057 VectorSet<T> operator+ ( VectorSet<T> const &v ) const; 00058 VectorSet<T> operator- ( VectorSet<T> const &v ) const; 00059 VectorSet<T> operator* ( VectorSet<T> const &v ) const; 00060 VectorSet<T> operator/ ( VectorSet<T> const &v ) const; 00061 VectorSet<T> operator* ( T s ) const; 00062 VectorSet<T> operator/ ( T s ) const; 00063 friend VectorSet<T> operator* ( T s, VectorSet<T> const &v ) { return v*s; } 00064 //------------------------------------------------------------------------- 00065 // Arithmetic Update Operators 00066 VectorSet<T> & operator+= ( VectorSet<T> const &v ); 00067 VectorSet<T> & operator-= ( VectorSet<T> const &v ); 00068 VectorSet<T> & operator*= ( VectorSet<T> const &v ); 00069 VectorSet<T> & operator/= ( VectorSet<T> const &v ); 00070 VectorSet<T> & operator*= ( T s ); 00071 VectorSet<T> & operator/= ( T s ); 00072 }; // END CLASS VectorSet 00073 //============================================================================= 00074 END_NAMESPACE_TAPs__Simulation 00075 //----------------------------------------------------------------------------- 00076 // Include definition if TAPs_USE_EXPORT is not defined 00077 //#if !defined( TAPs_USE_EXPORT ) 00078 #include "TAPsVectorSet.cpp" 00079 //#endif 00080 //----------------------------------------------------------------------------- 00081 #endif 00082 //345678901234567890123456789012345678901234567890123456789012345678901234567890 00083 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8