EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator Class Reference

Iterator type representing a group of elements. More...

#include <acts/blob/sPHENIX/Examples/Framework/include/ActsExamples/Utilities/GroupBy.hpp>

+ Collaboration diagram for ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator:

Public Types

using iterator_category = std::input_iterator_tag
 
using value_type = Group
 
using difference_type = std::ptrdiff_t
 
using pointer = Group *
 
using reference = Group &
 

Public Member Functions

constexpr GroupIterator (const GroupBy &groupBy, Iterator groupBegin)
 
constexpr GroupIteratoroperator++ ()
 Pre-increment operator to advance to the next group.
 
constexpr GroupIterator operator++ (int)
 Post-increment operator to advance to the next group.
 
constexpr Group operator* () const
 Derefence operator that returns the pointed-to group of elements.
 

Private Attributes

const GroupBym_groupBy
 
Iterator m_groupBegin
 
Iterator m_groupEnd
 

Friends

constexpr bool operator== (const GroupIterator &lhs, const GroupEndIterator &rhs)
 
constexpr bool operator!= (const GroupIterator &lhs, const GroupEndIterator &rhs)
 

Detailed Description

template<typename Iterator, typename KeyGetter>
class ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator

Iterator type representing a group of elements.

Definition at line 52 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 52 of file GroupBy.hpp

Member Typedef Documentation

template<typename Iterator , typename KeyGetter >
using ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::difference_type = std::ptrdiff_t

Definition at line 56 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 56 of file GroupBy.hpp

template<typename Iterator , typename KeyGetter >
using ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::iterator_category = std::input_iterator_tag

Definition at line 54 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 54 of file GroupBy.hpp

template<typename Iterator , typename KeyGetter >
using ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::pointer = Group*

Definition at line 57 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 57 of file GroupBy.hpp

template<typename Iterator , typename KeyGetter >
using ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::reference = Group&

Definition at line 58 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 58 of file GroupBy.hpp

template<typename Iterator , typename KeyGetter >
using ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::value_type = Group

Definition at line 55 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 55 of file GroupBy.hpp

Constructor & Destructor Documentation

template<typename Iterator , typename KeyGetter >
constexpr ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::GroupIterator ( const GroupBy groupBy,
Iterator  groupBegin 
)
inline

Definition at line 60 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 60 of file GroupBy.hpp

Member Function Documentation

template<typename Iterator , typename KeyGetter >
constexpr Group ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::operator* ( ) const
inline

Derefence operator that returns the pointed-to group of elements.

Definition at line 79 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 79 of file GroupBy.hpp

References ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBegin, ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBy, ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupEnd, ActsExamples::GroupBy< Iterator, KeyGetter >::m_keyGetter, and ActsExamples::makeRange().

+ Here is the call graph for this function:

template<typename Iterator , typename KeyGetter >
constexpr GroupIterator& ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::operator++ ( )
inline

Pre-increment operator to advance to the next group.

Definition at line 65 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 65 of file GroupBy.hpp

References ActsExamples::GroupBy< Iterator, KeyGetter >::findEndOfGroup(), ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBegin, ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBy, ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupEnd, and boost::swap().

+ Here is the call graph for this function:

template<typename Iterator , typename KeyGetter >
constexpr GroupIterator ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::operator++ ( int  )
inline

Post-increment operator to advance to the next group.

Definition at line 73 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 73 of file GroupBy.hpp

Friends And Related Function Documentation

template<typename Iterator , typename KeyGetter >
constexpr bool operator!= ( const GroupIterator lhs,
const GroupEndIterator rhs 
)
friend

Definition at line 95 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 95 of file GroupBy.hpp

template<typename Iterator , typename KeyGetter >
constexpr bool operator== ( const GroupIterator lhs,
const GroupEndIterator rhs 
)
friend

Definition at line 91 of file GroupBy.hpp.

View newest version in sPHENIX GitHub at line 91 of file GroupBy.hpp

Member Data Documentation

template<typename Iterator , typename KeyGetter >
Iterator ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBegin
private
template<typename Iterator , typename KeyGetter >
const GroupBy& ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupBy
private
template<typename Iterator , typename KeyGetter >
Iterator ActsExamples::GroupBy< Iterator, KeyGetter >::GroupIterator::m_groupEnd
private

The documentation for this class was generated from the following file: