ATLAS Offline Software
|
Iterator class for Array<N>
.
More...
#include <Array.h>
Classes | |
class | pointer |
Proxy to return from operator> . More... | |
Public Types | |
using | iterator_category = std::random_access_iterator_tag |
using | value_type = const Array< N-1 > |
using | difference_type = std::ptrdiff_t |
using | reference = value_type & |
Public Member Functions | |
ArrayIterator () | |
Default constructor. More... | |
ArrayIterator (const Arrayrep *rep, unsigned int offs) | |
Constructor from Arrayrep and offset. More... | |
bool | operator== (const ArrayIterator &other) const |
Equality comparison. More... | |
bool | operator!= (const ArrayIterator &other) const |
Inequality comparison. More... | |
bool | operator< (const ArrayIterator &other) const |
Less-than comparison. More... | |
bool | operator> (const ArrayIterator &other) const |
Greater-than comparison. More... | |
bool | operator<= (const ArrayIterator &other) const |
Less-than-or-equal comparison. More... | |
bool | operator>= (const ArrayIterator &other) const |
Greater-than-or-equal comparison. More... | |
value_type | operator* () const |
Dereference the iterator. More... | |
pointer | operator-> () const |
Dereference the iterator. More... | |
ArrayIterator< N > & | operator++ () |
Advance the iterator. More... | |
ArrayIterator< N > | operator++ (int) |
Advance the iterator. More... | |
ArrayIterator< N > & | operator-- () |
Back up the iterator. More... | |
ArrayIterator< N > | operator-- (int) |
Back up the iterator. More... | |
value_type | operator[] (difference_type n) const |
Array indexing relative to the iterator. More... | |
ArrayIterator< N > & | operator+= (difference_type n) |
Advance the iterator. More... | |
ArrayIterator< N > | operator+ (difference_type n) const |
Return a new iterator pointing n steps ahead. More... | |
ArrayIterator< N > & | operator-= (difference_type n) |
Back up the iterator. More... | |
ArrayIterator< N > | operator- (difference_type n) const |
Return a new iterator pointing n steps behind. More... | |
difference_type | operator- (const ArrayIterator &other) const |
Return the difference between two iterators. More... | |
Private Attributes | |
const Arrayrep * | m_rep |
The underlying array representation. More... | |
unsigned int | m_offs |
Offset into the representation's data array of the first element referred to by this iterator. More... | |
Iterator class for Array<N>
.
This serves as an iterator class for Array<N>
, where N
>= 2. It gives a Array<N-1>
as value_type
. Only const
access is supported.
This class is almost, but not quite, a random access iterator. operator*
and operator
[] returns a value_type
instead of a reference
. And operator->
returns a proxy. (The issues here are similar to those encountered with std::vector<bool>
.) But it should mostly work as you expect.
Definition at line 51 of file Control/CxxUtils/CxxUtils/Array.h.
using CxxUtils::ArrayIterator::difference_type = std::ptrdiff_t |
Definition at line 399 of file Control/CxxUtils/CxxUtils/Array.h.
using CxxUtils::ArrayIterator::iterator_category = std::random_access_iterator_tag |
Definition at line 397 of file Control/CxxUtils/CxxUtils/Array.h.
Definition at line 400 of file Control/CxxUtils/CxxUtils/Array.h.
using CxxUtils::ArrayIterator::value_type = const Array<N-1> |
Definition at line 398 of file Control/CxxUtils/CxxUtils/Array.h.
CxxUtils::ArrayIterator::ArrayIterator | ( | ) |
Default constructor.
Makes an invalid iterator.
Constructor from Arrayrep
and offset.
rep | The underlying array representation. |
offs | The offset in the representation of the first element referenced by this iterator. |
bool CxxUtils::ArrayIterator::operator!= | ( | const ArrayIterator & | other | ) | const |
Inequality comparison.
other | The other object with which to compare. |
value_type CxxUtils::ArrayIterator::operator* | ( | ) | const |
Dereference the iterator.
value_type
, not a reference
. (Thus, this class does not quite conform to the iterator requirements.) ArrayIterator<N> CxxUtils::ArrayIterator::operator+ | ( | difference_type | n | ) | const |
Return a new iterator pointing n steps ahead.
n | Number of steps by which to advance. |
ArrayIterator<N>& CxxUtils::ArrayIterator::operator++ | ( | ) |
Advance the iterator.
ArrayIterator<N> CxxUtils::ArrayIterator::operator++ | ( | int | ) |
Advance the iterator.
ArrayIterator<N>& CxxUtils::ArrayIterator::operator+= | ( | difference_type | n | ) |
Advance the iterator.
n | Number of steps by which to advance the iterator. |
difference_type CxxUtils::ArrayIterator::operator- | ( | const ArrayIterator & | other | ) | const |
Return the difference between two iterators.
other | The other iterator for the comparison. |
ArrayIterator<N> CxxUtils::ArrayIterator::operator- | ( | difference_type | n | ) | const |
Return a new iterator pointing n steps behind.
n | Number of steps by which to back up. |
ArrayIterator<N>& CxxUtils::ArrayIterator::operator-- | ( | ) |
Back up the iterator.
ArrayIterator<N> CxxUtils::ArrayIterator::operator-- | ( | int | ) |
Back up the iterator.
ArrayIterator<N>& CxxUtils::ArrayIterator::operator-= | ( | difference_type | n | ) |
Back up the iterator.
n | Number of steps by which to advance the iterator. |
pointer CxxUtils::ArrayIterator::operator-> | ( | ) | const |
Dereference the iterator.
This method will return a proxy for the array, which you can then dereference. Note that if you get a C++ pointer from this, then it will be valid only until the proxy object gets destroyed.
bool CxxUtils::ArrayIterator::operator< | ( | const ArrayIterator & | other | ) | const |
Less-than comparison.
other | The other object with which to compare. |
bool CxxUtils::ArrayIterator::operator<= | ( | const ArrayIterator & | other | ) | const |
Less-than-or-equal comparison.
other | The other object with which to compare. |
bool CxxUtils::ArrayIterator::operator== | ( | const ArrayIterator & | other | ) | const |
Equality comparison.
other | The other object with which to compare. |
bool CxxUtils::ArrayIterator::operator> | ( | const ArrayIterator & | other | ) | const |
Greater-than comparison.
other | The other object with which to compare. |
bool CxxUtils::ArrayIterator::operator>= | ( | const ArrayIterator & | other | ) | const |
Greater-than-or-equal comparison.
other | The other object with which to compare. |
value_type CxxUtils::ArrayIterator::operator[] | ( | difference_type | n | ) | const |
Array indexing relative to the iterator.
n | The array index. |
value_type
, not a reference
. (Thus, this class does not quite conform to the iterator requirements.)
|
private |
Offset into the representation's data array of the first element referred to by this iterator.
Definition at line 633 of file Control/CxxUtils/CxxUtils/Array.h.
The underlying array representation.
Definition at line 629 of file Control/CxxUtils/CxxUtils/Array.h.