CMS 3D CMS Logo

edm::Vector< T > Class Template Reference

#include <DataFormats/Common/interface/Vector.h>

List of all members.

Public Types

typedef base::const_iterator const_iterator
typedef base::const_reference const_reference
typedef base::iterator iterator
typedef base::pointer pointer
typedef base::reference reference
typedef base::size_type size_type
typedef base::value_type value_type

Public Member Functions

const_reference back () const
reference back ()
const_iterator begin () const
iterator begin ()
void clear ()
const basedata () const
bool empty () const
const_iterator end () const
iterator end ()
iterator erase (iterator first, iterator last)
iterator erase (iterator pos)
void fillView (ProductID const &id, std::vector< void const * > &pointers, helper_vector &helpers) const
const_reference front () const
reference front ()
Vector< T > & operator= (const Vector< T > &)
const_reference operator[] (size_type) const
reference operator[] (size_type)
void pop_back ()
void push_back (const value_type &)
void reserve (size_t)
size_type size () const
void swap (Vector< T > &other)
 Vector (const Vector &)
 Vector (size_type)
 Vector ()
 ~Vector ()

Private Types

typedef std::vector< T > base

Private Member Functions

void fixup () const
void touch ()

Private Attributes

base data_
helpers::PostReadFixupTrait< T >
::type 
fixup_


Detailed Description

template<typename T>
class edm::Vector< T >

Definition at line 27 of file Vector.h.


Member Typedef Documentation

template<typename T>
typedef std::vector<T> edm::Vector< T >::base [private]

Definition at line 32 of file Vector.h.

template<typename T>
typedef base::const_iterator edm::Vector< T >::const_iterator

Definition at line 43 of file Vector.h.

template<typename T>
typedef base::const_reference edm::Vector< T >::const_reference

Definition at line 40 of file Vector.h.

template<typename T>
typedef base::iterator edm::Vector< T >::iterator

Definition at line 42 of file Vector.h.

template<typename T>
typedef base::pointer edm::Vector< T >::pointer

Definition at line 38 of file Vector.h.

template<typename T>
typedef base::reference edm::Vector< T >::reference

Definition at line 39 of file Vector.h.

template<typename T>
typedef base::size_type edm::Vector< T >::size_type

Definition at line 36 of file Vector.h.

template<typename T>
typedef base::value_type edm::Vector< T >::value_type

Definition at line 37 of file Vector.h.


Constructor & Destructor Documentation

template<typename T>
edm::Vector< T >::Vector (  )  [inline]

Definition at line 84 of file Vector.h.

00084                            : data_() { 
00085   }

template<typename T>
edm::Vector< T >::Vector ( size_type  n  )  [inline]

Definition at line 88 of file Vector.h.

00088                                       : data_(n) { 
00089   }

template<typename T>
edm::Vector< T >::Vector ( const Vector< T > &  o  )  [inline]

Definition at line 92 of file Vector.h.

00092                                               : data_(o.data_) {
00093   }

template<typename T>
edm::Vector< T >::~Vector (  )  [inline]

Definition at line 96 of file Vector.h.

00096                             { 
00097   }


Member Function Documentation

template<typename T>
Vector< T >::const_reference edm::Vector< T >::back (  )  const [inline]

Definition at line 180 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00180                                                                  {
00181     fixup();
00182     return data_.back();
00183   }

template<typename T>
Vector< T >::reference edm::Vector< T >::back (  )  [inline]

Definition at line 173 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00173                                                      {
00174     fixup();
00175     touch();
00176     return data_.back();
00177   }

template<typename T>
Vector< T >::const_iterator edm::Vector< T >::begin (  )  const [inline]

Definition at line 120 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00120                                                                  {
00121     fixup();
00122     return const_iterator(data_.begin());
00123   }

template<typename T>
Vector< T >::iterator edm::Vector< T >::begin (  )  [inline]

Definition at line 106 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00106                                                      {
00107     fixup();
00108     touch();
00109     return iterator(data_.begin());
00110   }

template<typename T>
void edm::Vector< T >::clear ( void   )  [inline]

Definition at line 205 of file Vector.h.

References edm::Vector< T >::data_.

00205                                {
00206     data_.clear();
00207   }

template<typename T>
const Vector< T >::base & edm::Vector< T >::data (  )  const [inline]

Definition at line 199 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00199                                                               {
00200     fixup();
00201     return data_;
00202   }

template<typename T>
bool edm::Vector< T >::empty (  )  const [inline]

Definition at line 137 of file Vector.h.

References edm::Vector< T >::data_.

00137                                      {
00138     return data_.empty();
00139   }

template<typename T>
Vector< T >::const_iterator edm::Vector< T >::end (  )  const [inline]

Definition at line 126 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00126                                                                {
00127     fixup();
00128     return const_iterator(data_.end());
00129   }

template<typename T>
Vector< T >::iterator edm::Vector< T >::end (  )  [inline]

Definition at line 113 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00113                                                    {
00114     fixup();
00115     touch();
00116     return iterator(data_.end());
00117   }

template<typename T>
Vector< T >::iterator edm::Vector< T >::erase ( iterator  first,
iterator  last 
) [inline]

Definition at line 217 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00217                                                                            {
00218     fixup();
00219     touch();
00220     return data_.erase(first, last);
00221   }

template<typename T>
Vector< T >::iterator edm::Vector< T >::erase ( iterator  pos  )  [inline]

Definition at line 210 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00210                                                           {
00211     fixup();
00212     touch();
00213     return data_.erase(pos);
00214   }

template<typename T>
void edm::Vector< T >::fillView ( ProductID const &  id,
std::vector< void const * > &  pointers,
helper_vector helpers 
) const [inline]

Definition at line 230 of file Vector.h.

References edm::Vector< T >::data_, e, h, i, getDQMSummary::key, edm::reftobase::RefVectorHolderBase::push_back(), edm::reftobase::RefVectorHolderBase::reserve(), and edm::Vector< T >::size().

Referenced by edm::fillView().

00233   {
00234     typedef Ref<Vector>      ref_type ;
00235     typedef reftobase::RefHolder<ref_type> holder_type;
00236 
00237     size_type numElements = this->size();
00238     pointers.reserve(numElements);
00239     helpers.reserve(numElements);
00240     size_type key = 0;
00241     for(typename base::const_iterator i=data_.begin(), e=data_.end(); i!=e; ++i, ++key) {
00242 
00243       pointers.push_back(&*i);
00244       holder_type h(ref_type(id, &*i, key));
00245       helpers.push_back(&h);
00246     }
00247   }

template<typename T>
void edm::Vector< T >::fixup (  )  const [inline, private]

Definition at line 79 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup_.

Referenced by edm::Vector< T >::back(), edm::Vector< T >::begin(), edm::Vector< T >::data(), edm::Vector< T >::end(), edm::Vector< T >::erase(), edm::Vector< T >::front(), and edm::Vector< T >::operator[]().

00079 { fixup_(data_); }

template<typename T>
Vector< T >::const_reference edm::Vector< T >::front (  )  const [inline]

Definition at line 193 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00193                                                                   {
00194     fixup();
00195     return data_.front();
00196   }

template<typename T>
Vector< T >::reference edm::Vector< T >::front (  )  [inline]

Definition at line 186 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup(), and edm::Vector< T >::touch().

00186                                                       {
00187     fixup();
00188     touch();
00189     return data_.front();
00190   }

template<typename T>
Vector< T > & edm::Vector< T >::operator= ( const Vector< T > &  o  )  [inline]

Definition at line 100 of file Vector.h.

References edm::Vector< T >::swap(), and pyDBSRunClass::temp.

00100                                                              {
00101     Vector<T> temp(o);
00102     this->swap(temp);
00103     return *this;
00104   }

template<typename T>
Vector< T >::const_reference edm::Vector< T >::operator[] ( size_type  n  )  const [inline]

Definition at line 148 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00148                                                                                   {
00149     fixup();
00150     return data_[n];
00151   }

template<typename T>
Vector< T >::reference edm::Vector< T >::operator[] ( size_type  n  )  [inline]

Definition at line 142 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::fixup().

00142                                                                       {
00143     fixup();
00144     return data_[n];
00145   }

template<typename T>
void edm::Vector< T >::pop_back (  )  [inline]

Definition at line 165 of file Vector.h.

References edm::Vector< T >::data_, and edm::Vector< T >::touch().

00165                                   {
00166     // We have to delete the pointed-to thing, before we squeeze it
00167     // out of the vector...
00168     data_.pop_back();
00169     touch();
00170   }

template<typename T>
void edm::Vector< T >::push_back ( const value_type  ) 

Referenced by PFTauDiscriminants::PiZeroAngle::doComputation(), PFTauDiscriminants::ChargedOutlierAngle::doComputation(), PFTauDiscriminants::NeutralOutlierAngle::doComputation(), and PFTauDiscriminants::OutlierAngle::doComputation().

template<typename T>
void edm::Vector< T >::reserve ( size_t  n  )  [inline]

Definition at line 154 of file Vector.h.

References edm::Vector< T >::data_.

00154                                          {
00155     data_.reserve(n);
00156   }

template<typename T>
Vector< T >::size_type edm::Vector< T >::size ( void   )  const [inline]

Definition at line 132 of file Vector.h.

References edm::Vector< T >::data_.

Referenced by edm::Vector< T >::fillView().

00132                                                            {
00133     return data_.size();
00134   }

template<typename T>
void edm::Vector< T >::swap ( Vector< T > &  other  )  [inline]

Definition at line 224 of file Vector.h.

References edm::Vector< T >::data_, edm::Vector< T >::fixup_, and std::swap().

Referenced by edm::Vector< T >::operator=(), and edm::swap().

00224                                               {
00225     data_.swap(other.data_);
00226     std::swap(fixup_, other.fixup_);
00227   }

template<typename T>
void edm::Vector< T >::touch (  )  [inline, private]

Definition at line 80 of file Vector.h.

References edm::Vector< T >::fixup_.

Referenced by edm::Vector< T >::back(), edm::Vector< T >::begin(), edm::Vector< T >::end(), edm::Vector< T >::erase(), edm::Vector< T >::front(), and edm::Vector< T >::pop_back().

00080 { fixup_.touch(); }


Member Data Documentation

template<typename T>
base edm::Vector< T >::data_ [private]

Definition at line 77 of file Vector.h.

Referenced by edm::Vector< T >::back(), edm::Vector< T >::begin(), edm::Vector< T >::clear(), edm::Vector< T >::data(), edm::Vector< T >::empty(), edm::Vector< T >::end(), edm::Vector< T >::erase(), edm::Vector< T >::fillView(), edm::Vector< T >::fixup(), edm::Vector< T >::front(), edm::Vector< T >::operator[](), edm::Vector< T >::pop_back(), edm::Vector< T >::reserve(), edm::Vector< T >::size(), and edm::Vector< T >::swap().

template<typename T>
helpers::PostReadFixupTrait<T>::type edm::Vector< T >::fixup_ [private]

Definition at line 78 of file Vector.h.

Referenced by edm::Vector< T >::fixup(), edm::Vector< T >::swap(), and edm::Vector< T >::touch().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:44:46 2009 for CMSSW by  doxygen 1.5.4