// This code implementation is the intellectual property of // the GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: tvordvec.icc,v 1.1 1999/11/25 10:14:46 gcosmo Exp $ // GEANT4 tag $Name: geant4-01-00 $ // // //--------------------------------------------------------------- // GEANT 4 class header file // // G4RWTValOrderedVector //--------------------------------------------------------------- template G4RWTValOrderedVector::G4RWTValOrderedVector(size_t capacity) : std_vector(capacity),rwsize(0){} template G4RWTValOrderedVector::G4RWTValOrderedVector(const G4RWTValOrderedVector& v) : std_vector(v),rwsize(v.rwsize){} template G4RWTValOrderedVector::~G4RWTValOrderedVector(){} template G4RWTValOrderedVector& G4RWTValOrderedVector::operator=(const G4RWTValOrderedVector& v) { std_vector::operator=(v); rwsize=v.rwsize; return *this; } template T& G4RWTValOrderedVector::operator()(size_t i) { //if(i>=rwsize) // G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector ()",rwsize,i)); if(i const T& G4RWTValOrderedVector::operator()(size_t i) const { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector const()",rwsize,i)); return std_vector::operator[](i); } template T& G4RWTValOrderedVector::operator[](size_t i) { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector []",rwsize,i)); //if(i const T& G4RWTValOrderedVector::operator[](size_t i) const { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector const []",rwsize,i)); return std_vector::operator[](i); } template T& G4RWTValOrderedVector::at(size_t n) { if(n>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector at",rwsize,n)); return operator()(n); } template T G4RWTValOrderedVector::at(size_t n ) const { if(n>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector const at",rwsize,n)); return operator()(n); } template void G4RWTValOrderedVector::clear( void ) { //std_vector::erase(std_vector::begin(), std_vector::end()); for(size_t i=0;i size_t G4RWTValOrderedVector::length() const { return rwsize; } template size_t G4RWTValOrderedVector::entries () const { return rwsize; } template void G4RWTValOrderedVector::append ( const T& a ) { insert ( a ); } template T G4RWTValOrderedVector::first() const { if(!rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector first",rwsize,0)); return std_vector::front(); } template T G4RWTValOrderedVector::last() const { if(rwsize) return std_vector::operator[](rwsize-1); else G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector last",rwsize,0)); } template size_t G4RWTValOrderedVector::index( const T& a ) { iterator i; size_t ptn = 0; for (i = std_vector::begin();ptn size_t G4RWTValOrderedVector::occurrencesOf( const T& a ) const { const_iterator i; size_t ptn = 0; size_t sz=0; for (i = std_vector::begin(); sz G4bool G4RWTValOrderedVector::remove( const T& a ) { iterator i; size_t sz=0; size_t rwsz=rwsize; for (i = std_vector::begin(); sz size_t G4RWTValOrderedVector::removeAll( const T& a ) { iterator i; size_t ptn = 0; size_t sz=0; size_t rwsz=rwsize; for (i = std_vector::begin();sz T G4RWTValOrderedVector::removeAt( size_t i ) { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector removeAt",rwsize,i)); T tmp = operator[](i); iterator it=std_vector::begin(); int j; for(j=0;j void G4RWTValOrderedVector::resize(size_t N) { if(N>std_vector::size()) { int e=N-std_vector::size(); for(int i=0;irwsize ) { iterator it=std_vector::begin(); for(int i=0;i G4bool G4RWTValOrderedVector::contains( const T a ) const { const_iterator i; size_t sz=0; for (i = std_vector::begin();sz G4bool G4RWTValOrderedVector::insert ( const T& a ) { if(rwsizestd_vector::operator[](rwsize)=a; rwsize++; } else { std_vector::push_back(a); rwsize=std_vector::size(); } return true; } // insertAt throws an exception of type G4RWBoundsErr if you try // to insert out of range // template void G4RWTValOrderedVector::insertAt ( size_t i, const T& a ) { if(i>rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValOrderedVector insertAt",rwsize,i)); if(rwsizei;j--) std_vector::operator[](j)=this->std_vector::operator[](j-1); std_vector::operator[](i)=a; rwsize++; } else { iterator it=std_vector::begin(); for(int j=0;j