// // ******************************************************************** // * DISCLAIMER * // * * // * The following disclaimer summarizes all the specific disclaimers * // * of contributors to this software. The specific disclaimers,which * // * govern, are listed with their locations in: * // * http://cern.ch/geant4/license * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. * // * * // * 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.h,v 1.8.4.1 2001/06/28 19:09:59 gunter Exp $ // GEANT4 tag $Name: $ // // //--------------------------------------------------------------- // GEANT 4 class header file // // G4RWTValOrderedVector // // Class description: // // STL wrapper class for Value Ordered arrays. It implements // Rogue Wave RWTValOrderedVector signature but intrinsically // using STL vector. //--------------------------------------------------------------- #ifndef __tvordvec #define __tvordvec #include "g4std/vector" #include "g4std/algorithm" #include "g4rw/defs.h" #include "g4rw/tvvector.h" template class G4RWTValOrderedVector : public G4std::vector { typedef G4std::vector std_vector; typedef typename std_vector::iterator iterator; typedef typename std_vector::const_iterator const_iterator; public: G4RWTValOrderedVector(size_t capacity=G4RWDEFAULT_CAPACITY); G4RWTValOrderedVector(const G4RWTValOrderedVector&); virtual ~G4RWTValOrderedVector(); inline G4RWTValOrderedVector& operator=(const G4RWTValOrderedVector&); inline T& operator()(size_t); inline const T& operator()(size_t) const; inline T& operator[](size_t); inline const T& operator[](size_t) const; inline T& at (size_t); inline T at (size_t) const; void resize (size_t); void clear( void ); G4bool contains(const T) const; inline size_t length() const; size_t index (const T&); inline G4bool insert (const T&); void insertAt (size_t, const T&); size_t occurrencesOf (const T&) const; G4bool remove (const T&); size_t removeAll (const T&); T removeAt (size_t); size_t entries () const; inline void append (const T&); inline T first() const; inline T last() const; private: size_t rwsize; }; // Include actual implementations of templated class methods. #include "g4rw/tvordvec.icc" #endif