CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

EZArrayFL< T > Class Template Reference

#include <EZArrayFL.h>

List of all members.

Public Types

typedef MgrType::const_iterator const_iterator
typedef MgrType::const_reference const_reference
typedef MgrType::iterator iterator
typedef EZMgrFL< TMgrType
typedef MgrType::reference reference
typedef MgrType::size_type size_type
typedef MgrType::value_type value_type

Public Member Functions

void assign (const T &t=T()) const
const_iterator begin () const
size_type capacity () const
bool empty () const
const_iterator end () const
 EZArrayFL (const MgrType *mgr)
 EZArrayFL (const MgrType *mgr, const_iterator start, const_iterator finis)
 EZArrayFL ()
reference operator[] (const unsigned int i)
const_reference operator[] (const unsigned int i) const
void resize () const
size_type size () const
bool uninitialized () const
virtual ~EZArrayFL ()

Private Attributes

iterator m_begin
const MgrTypem_mgr

Detailed Description

template<class T>
class EZArrayFL< T >

stl-vector-LIKE Class designed to allow many small fixed-length containers to have a common memory managed by a single higher-level object.

It has the usual common iterators (begin, end) and functions (size, capacity, etc) but is NOT actually an STL-vector.

It practices 'on-demand', or 'lazy evaluation', only allocating memory when requested.

Definition at line 21 of file EZArrayFL.h.


Member Typedef Documentation

template<class T>
typedef MgrType::const_iterator EZArrayFL< T >::const_iterator

Definition at line 27 of file EZArrayFL.h.

template<class T>
typedef MgrType::const_reference EZArrayFL< T >::const_reference

Definition at line 29 of file EZArrayFL.h.

template<class T>
typedef MgrType::iterator EZArrayFL< T >::iterator

Definition at line 26 of file EZArrayFL.h.

template<class T>
typedef EZMgrFL< T > EZArrayFL< T >::MgrType

Definition at line 25 of file EZArrayFL.h.

template<class T>
typedef MgrType::reference EZArrayFL< T >::reference

Definition at line 28 of file EZArrayFL.h.

template<class T>
typedef MgrType::size_type EZArrayFL< T >::size_type

Definition at line 30 of file EZArrayFL.h.

template<class T>
typedef MgrType::value_type EZArrayFL< T >::value_type

Definition at line 31 of file EZArrayFL.h.


Constructor & Destructor Documentation

template<class T>
EZArrayFL< T >::EZArrayFL ( ) [inline]

Definition at line 33 of file EZArrayFL.h.

                       : m_begin ( 0 ) ,
                         m_mgr   (   ) {}
template<class T>
EZArrayFL< T >::EZArrayFL ( const MgrType mgr) [inline]

Definition at line 36 of file EZArrayFL.h.

                                            : m_begin ( 0 ) ,
                                              m_mgr   ( mgr )   {}
template<class T>
EZArrayFL< T >::EZArrayFL ( const MgrType mgr,
const_iterator  start,
const_iterator  finis 
) [inline]

Definition at line 39 of file EZArrayFL.h.

                                                   :
         m_begin ( 0==finis-start ? (iterator)0 : mgr->assign() ) ,
         m_mgr   ( mgr )
      {
         assert( ( finis - start ) == m_mgr->subSize() ) ;
         iterator i ( begin() ) ;
         for( const_iterator ic ( start ) ; ic != finis ; ++ic )
         {
            (*i) = (*ic) ;
         }
      }
template<class T>
virtual EZArrayFL< T >::~EZArrayFL ( ) [inline, virtual]

Definition at line 53 of file EZArrayFL.h.

{}

Member Function Documentation

template<class T>
void EZArrayFL< T >::assign ( const T t = T()) const [inline]
template<class T>
const_iterator EZArrayFL< T >::begin ( void  ) const [inline]
template<class T>
size_type EZArrayFL< T >::capacity ( ) const [inline]

Definition at line 83 of file EZArrayFL.h.

{ return size() ; }
template<class T>
bool EZArrayFL< T >::empty ( void  ) const [inline]

Definition at line 79 of file EZArrayFL.h.

Referenced by CaloCellGeometry::emptyCorners().

{ return ( 0 == size() ) ;  }
template<class T>
const_iterator EZArrayFL< T >::end ( void  ) const [inline]

Definition at line 64 of file EZArrayFL.h.

Referenced by TrackDetMatchInfo::dumpGeometry(), and CaloSubdetectorGeometry::getSummary().

{ return m_begin + m_mgr->subSize() ; }
template<class T>
const_reference EZArrayFL< T >::operator[] ( const unsigned int  i) const [inline]

Definition at line 72 of file EZArrayFL.h.

      {
         return *( m_begin + i ) ;
      }
template<class T>
reference EZArrayFL< T >::operator[] ( const unsigned int  i) [inline]

Definition at line 66 of file EZArrayFL.h.

      {
         if( (iterator)0 == m_begin ) assign() ;
         return *( m_begin + i ) ; 
      }
template<class T>
void EZArrayFL< T >::resize ( ) const [inline]

Definition at line 55 of file EZArrayFL.h.

{ assign() ; }
template<class T>
size_type EZArrayFL< T >::size ( void  ) const [inline]
template<class T>
bool EZArrayFL< T >::uninitialized ( ) const [inline]

Member Data Documentation

template<class T>
iterator EZArrayFL< T >::m_begin [mutable, private]
template<class T>
const MgrType* EZArrayFL< T >::m_mgr [private]