CMS 3D CMS Logo

edm::IDVectorMap< ID, C, P > Class Template Reference

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

List of all members.

Public Types

typedef C::const_iterator container_iterator
typedef std::map< ID, C > map
typedef map::const_iterator map_iterator
typedef C::value_type value_type

Public Member Functions

template<typename M>
match_iterator< M > begin (const M &m) const
const_iterator begin () const
template<typename M>
match_iterator< M > end (const M &m) const
const_iterator end () const
range get (ID id) const
id_iterator id_begin () const
id_iterator id_end () const
size_t id_size () const
 IDVectorMap ()
template<typename CI>
void insert (ID id, CI begin, CI end)
void insert (ID id, const value_type &t)
IDVectorMapoperator= (IDVectorMap const &rhs)
void swap (IDVectorMap &other)

Private Attributes

collection_
map map_

Classes

struct  const_iterator
struct  id_iterator
struct  match_iterator
struct  range


Detailed Description

template<typename ID, typename C, typename P>
class edm::IDVectorMap< ID, C, P >

Definition at line 9 of file IDVectorMap.h.


Member Typedef Documentation

template<typename ID, typename C, typename P>
typedef C::const_iterator edm::IDVectorMap< ID, C, P >::container_iterator

Definition at line 12 of file IDVectorMap.h.

template<typename ID, typename C, typename P>
typedef std::map<ID, C> edm::IDVectorMap< ID, C, P >::map

Definition at line 13 of file IDVectorMap.h.

template<typename ID, typename C, typename P>
typedef map::const_iterator edm::IDVectorMap< ID, C, P >::map_iterator

Definition at line 14 of file IDVectorMap.h.

template<typename ID, typename C, typename P>
typedef C::value_type edm::IDVectorMap< ID, C, P >::value_type

Definition at line 11 of file IDVectorMap.h.


Constructor & Destructor Documentation

template<typename ID, typename C, typename P>
edm::IDVectorMap< ID, C, P >::IDVectorMap (  )  [inline]

Definition at line 62 of file IDVectorMap.h.

00062 { }


Member Function Documentation

template<typename ID, typename C, typename P>
template<typename M>
match_iterator<M> edm::IDVectorMap< ID, C, P >::begin ( const M &  m  )  const [inline]

Definition at line 136 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

00136                                                {
00137       return match_iterator<M>(m, map_.end(), map_.begin(), map_.begin()->second.begin());
00138     }

template<typename ID, typename C, typename P>
const_iterator edm::IDVectorMap< ID, C, P >::begin (  )  const [inline]

Definition at line 63 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

Referenced by edm::IDVectorMap< ID, C, P >::get().

00063                                  {
00064       return const_iterator(map_.end(), map_.begin(), map_.begin()->second.begin());
00065     }

template<typename ID, typename C, typename P>
template<typename M>
match_iterator<M> edm::IDVectorMap< ID, C, P >::end ( const M &  m  )  const [inline]

Definition at line 140 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

00140                                              {
00141       return match_iterator<M>(m, map_.end());
00142     }

template<typename ID, typename C, typename P>
const_iterator edm::IDVectorMap< ID, C, P >::end (  )  const [inline]

Definition at line 66 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

Referenced by edm::IDVectorMap< ID, C, P >::get().

00066                                {
00067       return const_iterator(map_.end());
00068     }

template<typename ID, typename C, typename P>
range edm::IDVectorMap< ID, C, P >::get ( ID  id  )  const [inline]

Definition at line 84 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::begin(), edm::IDVectorMap< ID, C, P >::end(), i, edm::IDVectorMap< ID, C, P >::map_, and range.

00084                            {
00085       container_iterator begin, end;
00086       map_iterator i = map_.find(id);
00087       if (i != map_.end()) { 
00088         begin = i->second.begin();
00089         end = i->second.end();
00090       } else {
00091         begin = end;
00092       }
00093       return range(begin, end);
00094     }

template<typename ID, typename C, typename P>
id_iterator edm::IDVectorMap< ID, C, P >::id_begin (  )  const [inline]

Definition at line 162 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

00162 { return id_iterator(map_.begin()); }

template<typename ID, typename C, typename P>
id_iterator edm::IDVectorMap< ID, C, P >::id_end (  )  const [inline]

Definition at line 163 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

00163 { return id_iterator(map_.end()); }

template<typename ID, typename C, typename P>
size_t edm::IDVectorMap< ID, C, P >::id_size (  )  const [inline]

Definition at line 164 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::map_.

00164 { return map_.size(); }

template<typename ID, typename C, typename P>
template<typename CI>
void edm::IDVectorMap< ID, C, P >::insert ( ID  id,
CI  begin,
CI  end 
) [inline]

Definition at line 73 of file IDVectorMap.h.

References c, funct::C, clone(), i, and edm::IDVectorMap< ID, C, P >::map_.

00073                                          {
00074       C & c = map_[ id ];
00075       for(CI i = begin; i != end; ++i)
00076         c.push_back(P::clone(*i));
00077     }

template<typename ID, typename C, typename P>
void edm::IDVectorMap< ID, C, P >::insert ( ID  id,
const value_type t 
) [inline]

Definition at line 69 of file IDVectorMap.h.

References clone(), and edm::IDVectorMap< ID, C, P >::map_.

00069                                              {
00070       map_[ id ].push_back(P::clone(t));
00071     }

template<typename ID, typename C, typename P>
IDVectorMap& edm::IDVectorMap< ID, C, P >::operator= ( IDVectorMap< ID, C, P > const &  rhs  ) 

template<typename ID, typename C, typename P>
void edm::IDVectorMap< ID, C, P >::swap ( IDVectorMap< ID, C, P > &  other  ) 

Referenced by edm::swap().


Member Data Documentation

template<typename ID, typename C, typename P>
C edm::IDVectorMap< ID, C, P >::collection_ [private]

Definition at line 168 of file IDVectorMap.h.

template<typename ID, typename C, typename P>
map edm::IDVectorMap< ID, C, P >::map_ [private]

Definition at line 169 of file IDVectorMap.h.

Referenced by edm::IDVectorMap< ID, C, P >::begin(), edm::IDVectorMap< ID, C, P >::end(), edm::IDVectorMap< ID, C, P >::get(), edm::IDVectorMap< ID, C, P >::id_begin(), edm::IDVectorMap< ID, C, P >::id_end(), edm::IDVectorMap< ID, C, P >::id_size(), and edm::IDVectorMap< ID, C, P >::insert().


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