ARTS 2.5.0 (git: 9ee3ac6c)
Iterator1D Class Reference

The iterator class for sub vectors. More...

#include <matpackI.h>

Public Types

using difference_type = Index
 
using value_type = Numeric
 
using pointer = Numeric *
 
using reference = Numeric &
 
using iterator_category = std::random_access_iterator_tag
 

Public Member Functions

 Iterator1D ()=default
 Default constructor. More...
 
 Iterator1D (Numeric *x, Index stride) ARTS_NOEXCEPT
 Explicit constructor. More...
 
Iterator1Doperator++ () ARTS_NOEXCEPT
 Prefix increment operator. More...
 
Numericoperator* () const ARTS_NOEXCEPT
 Dereferencing. More...
 
bool operator!= (const Iterator1D &other) const ARTS_NOEXCEPT
 Not equal operator, needed for algorithms like copy. More...
 
bool operator== (const Iterator1D &other) const ARTS_NOEXCEPT
 
Index operator- (const Iterator1D &other) const ARTS_NOEXCEPT
 

Private Attributes

Numericmx {nullptr}
 Current position. More...
 
Index mstride {0}
 Stride. More...
 

Friends

void copy (ConstIterator1D origin, const ConstIterator1D &end, Iterator1D target)
 Copy data between begin and end to target. More...
 

Detailed Description

The iterator class for sub vectors.

This takes into account the defined stride.

Definition at line 365 of file matpackI.h.

Member Typedef Documentation

◆ difference_type

Definition at line 367 of file matpackI.h.

◆ iterator_category

using Iterator1D::iterator_category = std::random_access_iterator_tag

Definition at line 371 of file matpackI.h.

◆ pointer

Definition at line 369 of file matpackI.h.

◆ reference

Definition at line 370 of file matpackI.h.

◆ value_type

Definition at line 368 of file matpackI.h.

Constructor & Destructor Documentation

◆ Iterator1D() [1/2]

Iterator1D::Iterator1D ( )
default

Default constructor.

◆ Iterator1D() [2/2]

Iterator1D::Iterator1D ( Numeric x,
Index  stride 
)
inline

Explicit constructor.

Definition at line 377 of file matpackI.h.

Member Function Documentation

◆ operator!=()

bool Iterator1D::operator!= ( const Iterator1D other) const
inline

Not equal operator, needed for algorithms like copy.

Definition at line 393 of file matpackI.h.

References mx.

Referenced by operator==().

◆ operator*()

Numeric & Iterator1D::operator* ( ) const
inline

Dereferencing.

Definition at line 390 of file matpackI.h.

References mx.

◆ operator++()

Iterator1D & Iterator1D::operator++ ( )
inline

Prefix increment operator.

Definition at line 384 of file matpackI.h.

References mstride, and mx.

◆ operator-()

Index Iterator1D::operator- ( const Iterator1D other) const
inline

Definition at line 404 of file matpackI.h.

References mstride, and mx.

◆ operator==()

bool Iterator1D::operator== ( const Iterator1D other) const
inline

Definition at line 400 of file matpackI.h.

References operator!=().

Friends And Related Function Documentation

◆ copy

void copy ( ConstIterator1D  origin,
const ConstIterator1D end,
Iterator1D  target 
)
friend

Copy data between begin and end to target.

Target must be a valid area of memory. Note that the strides in the iterators can be different, so that we can for example copy data between different kinds of subvectors.

Definition at line 299 of file matpackI.cc.

Member Data Documentation

◆ mstride

Index Iterator1D::mstride {0}
private

Stride.

Definition at line 420 of file matpackI.h.

Referenced by operator++(), and operator-().

◆ mx

Numeric* Iterator1D::mx {nullptr}
private

Current position.

Definition at line 418 of file matpackI.h.

Referenced by operator!=(), operator*(), operator++(), and operator-().


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