Changeset 2719 in Sophya
- Timestamp:
- May 13, 2005, 6:44:31 PM (20 years ago)
- Location:
- trunk/SophyaLib/TArray
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/TArray/tvector.cc
r2615 r2719 1 // $Id: tvector.cc,v 1.1 7 2004-09-10 09:55:07cmv Exp $1 // $Id: tvector.cc,v 1.18 2005-05-13 16:44:30 cmv Exp $ 2 2 // C.Magneville 04/99 3 3 #include "sopnamsp.h" … … 101 101 } 102 102 103 104 103 //! Constructor of a vector from a TArray \b a 105 104 /*! … … 132 131 throw SzMismatchError("TVector<T>::TVector(const BaseArray& a) NRows()!=1 && NCols()!=1 "); 133 132 arrtype_ = 2; // Type = Vector 133 } 134 135 //! Constructor from a STL vector 136 template <class T> 137 TVector<T>::TVector(const vector<T>& v, short lcv) 138 { 139 sa_size_t n = v.size(); 140 if(n==0) 141 throw SzMismatchError("TVector<T>::TVector(const vector<T>& v) size()==0 "); 142 arrtype_ = 2; // Type = Vector 143 ReSize(n,lcv,false); 144 for(sa_size_t i=0;i<n;i++) (*this)(i) = v[i]; 134 145 } 135 146 … … 206 217 return(rs); 207 218 219 } 220 221 //! Fill from a STL vector 222 /*! 223 \param v : STL vector to copy 224 \param noresize : "true" means TVector keeps its size 225 \warning Filling is always done starting at TVector(0) 226 */ 227 template <class T> 228 sa_size_t TVector<T>::FillFr(const vector<T>& v,bool noresize) 229 { 230 sa_size_t n = v.size(); 231 if(n==0) return 0; //STL vector de taille nulle! 232 if(!noresize) ReSize(n,SameVectorType,false); 233 if(Size()<n) n = Size(); 234 if(n==0) return 0; //TVector de taille nulle sans resize! 235 for(sa_size_t i=0;i<n;i++) (*this)(i) = v[i]; 236 return n; 237 } 238 239 //! Fill a STL vector 240 /*! 241 \param v : STL vector to fill 242 \param addtoend : "true" means TVector will be added at the end of "v" 243 */ 244 template <class T> 245 sa_size_t TVector<T>::FillTo(vector<T>& v,bool addtoend) 246 { 247 sa_size_t n = Size(); 248 if(n==0) return 0; //TVector de taille nulle! 249 if(!addtoend) v.resize(0); 250 for(sa_size_t i=0;i<n;i++) v.push_back((*this)(i)); 251 return n; 208 252 } 209 253 -
trunk/SophyaLib/TArray/tvector.h
r2575 r2719 20 20 TVector(const TArray<T>& a, bool share, short lcv=AutoVectorType, short mm=AutoMemoryMapping); 21 21 TVector(const BaseArray& a); 22 TVector(const vector<T>& v, short lcv=AutoVectorType); 22 23 23 24 virtual ~TVector(); … … 44 45 { ReSize(n, lcv, fzero); } 45 46 void Realloc(sa_size_t n, short lcv=SameVectorType, bool force=false); 47 48 // Remplissage from/to a STL vector 49 sa_size_t FillFr(const vector<T>& v,bool noresize=false); 50 sa_size_t FillTo(vector<T>& v,bool addtoend=false); 46 51 47 52 // Sub-Vector extraction $CHECK$ Reza 03/2000 Doit-on declarer cette methode const ?
Note:
See TracChangeset
for help on using the changeset viewer.