CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
edm::IDVectorMap< ID, C, P >::const_iterator Struct Reference

#include <IDVectorMap.h>

Public Types

typedef
map_iterator::iterator_category 
iterator_category
 
typedef value_typepointer
 
typedef value_typereference
 
typedef IDVectorMap::value_type value_type
 

Public Member Functions

 const_iterator ()
 
 const_iterator (const map_iterator &e, const map_iterator &m, const container_iterator &c)
 
 const_iterator (const map_iterator &e)
 
bool operator!= (const const_iterator &ci) const
 
const value_typeoperator* () const
 
const_iteratoroperator++ ()
 
const_iterator operator++ (int)
 
const_iteratoroperator-- ()
 
const_iterator operator-- (int)
 
const_iteratoroperator= (const const_iterator &it)
 
bool operator== (const const_iterator &ci) const
 

Private Attributes

map_iterator em
 
container_iterator ic
 
map_iterator im
 

Detailed Description

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

Definition at line 15 of file IDVectorMap.h.

Member Typedef Documentation

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

Definition at line 19 of file IDVectorMap.h.

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

Definition at line 17 of file IDVectorMap.h.

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

Definition at line 18 of file IDVectorMap.h.

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

Definition at line 16 of file IDVectorMap.h.

Constructor & Destructor Documentation

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

Definition at line 20 of file IDVectorMap.h.

20 { }
template<typename ID, typename C, typename P>
edm::IDVectorMap< ID, C, P >::const_iterator::const_iterator ( const map_iterator e,
const map_iterator m,
const container_iterator c 
)
inline

Definition at line 21 of file IDVectorMap.h.

21  :
22  im(m), em(e), ic(c) {
23  }
template<typename ID, typename C, typename P>
edm::IDVectorMap< ID, C, P >::const_iterator::const_iterator ( const map_iterator e)
inline

Definition at line 24 of file IDVectorMap.h.

24  :
25  im(e), em(e) {
26  }

Member Function Documentation

template<typename ID, typename C, typename P>
bool edm::IDVectorMap< ID, C, P >::const_iterator::operator!= ( const const_iterator ci) const
inline

Definition at line 55 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::const_iterator::operator==().

55 { return ! operator==(ci); }
bool operator==(const const_iterator &ci) const
Definition: IDVectorMap.h:51
template<typename ID, typename C, typename P>
const value_type& edm::IDVectorMap< ID, C, P >::const_iterator::operator* ( ) const
inline

Definition at line 56 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::const_iterator::ic.

56 { return *ic; }
template<typename ID, typename C, typename P>
const_iterator& edm::IDVectorMap< ID, C, P >::const_iterator::operator++ ( )
inline

Definition at line 31 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::const_iterator::em, edm::IDVectorMap< ID, C, P >::const_iterator::ic, and edm::IDVectorMap< ID, C, P >::const_iterator::im.

31  {
32  ++ic;
33  while (ic == im->second.end()) {
34  ++im;
35  if (im == em) return *this;
36  ic = im->second.begin();
37  }
38  return *this;
39  }
template<typename ID, typename C, typename P>
const_iterator edm::IDVectorMap< ID, C, P >::const_iterator::operator++ ( int  )
inline
template<typename ID, typename C, typename P>
const_iterator& edm::IDVectorMap< ID, C, P >::const_iterator::operator-- ( )
inline

Definition at line 41 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::const_iterator::em, edm::IDVectorMap< ID, C, P >::const_iterator::ic, and edm::IDVectorMap< ID, C, P >::const_iterator::im.

41  {
42  if (im == em) { --im; ic = im->second.end(); }
43  while (ic == im->second.begin()) {
44  --im;
45  ic = im->second.end();
46  }
47  --ic;
48  return *this;
49  }
template<typename ID, typename C, typename P>
const_iterator edm::IDVectorMap< ID, C, P >::const_iterator::operator-- ( int  )
inline
template<typename ID, typename C, typename P>
const_iterator& edm::IDVectorMap< ID, C, P >::const_iterator::operator= ( const const_iterator it)
inline
template<typename ID, typename C, typename P>
bool edm::IDVectorMap< ID, C, P >::const_iterator::operator== ( const const_iterator ci) const
inline

Definition at line 51 of file IDVectorMap.h.

References edm::IDVectorMap< ID, C, P >::const_iterator::em, edm::IDVectorMap< ID, C, P >::const_iterator::ic, and edm::IDVectorMap< ID, C, P >::const_iterator::im.

Referenced by edm::IDVectorMap< ID, C, P >::const_iterator::operator!=().

51  {
52  if (im == em && ci.im == im && ci.em == em) return true;
53  return im == ci.im && ic == ci.ic;
54  }

Member Data Documentation

template<typename ID, typename C, typename P>
map_iterator edm::IDVectorMap< ID, C, P >::const_iterator::em
private
template<typename ID, typename C, typename P>
container_iterator edm::IDVectorMap< ID, C, P >::const_iterator::ic
private
template<typename ID, typename C, typename P>
map_iterator edm::IDVectorMap< ID, C, P >::const_iterator::im
private