ATLAS Offline Software
Loading...
Searching...
No Matches
MissingETBase::Container Namespace Reference

Functions

Iterator algebra
template<class ITER>
size_t iteratorDiff (ITER first, ITER last)
 Difference (number of steps) between two iterators.
template<class ITER>
ITER iteratorAdvance (ITER iter, size_t step)
 Advance an iterator by a number of steps.

Function Documentation

◆ iteratorAdvance()

template<class ITER>
ITER MissingETBase::Container::iteratorAdvance ( ITER iter,
size_t step )

Advance an iterator by a number of steps.

Returns
Advanced iterator.
Template Parameters
ITERiterator type.
Note
ITER::operator+(size_t) must be defined.
Parameters
[in]iterstarting iterator
[in]stepnumber of steps to advance
Warning
There is no control on the number of steps. The resulting iterator maybe invalid, except if ITER has a protection build in.

Definition at line 174 of file MissingETCompositionBase.h.

174{ ITER fIter(iter); std::advance(iter,step); return fIter; }

◆ iteratorDiff()

template<class ITER>
size_t MissingETBase::Container::iteratorDiff ( ITER first,
ITER last )

Difference (number of steps) between two iterators.

Returns
Number of steps from first to last iterator.
Template Parameters
ITERiterator type.
Note
ITER::operator-(const ITER&) must be defined with an integer return value >= 0.
Parameters
[in]firstfirst iterator
[in]lastlast iterator
Note
first needs to be identical to last, or precede it. Otherwise the return value may be undefined.

Definition at line 159 of file MissingETCompositionBase.h.

159{ return (size_t)(std::distance(first,last)); }