AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator Class Reference

An iterator type for a map. Each increment operation advances the iterator to the next set element. To access the jth component values of the iterator's current element, use iter(j). More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.5.0/src/axom/slam/Map.hpp>

Inheritance diagram for axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator:

Public Types

using iterator_category = std::random_access_iterator_tag
 
using value_type = DataType
 
using difference_type = SetPosition
 
using IterBase = IteratorBase< MapIterator, SetPosition >
 
using iter = MapIterator
 
using PositionType = SetPosition
 

Public Member Functions

 MapIterator (PositionType pos, Map *oMap)
 
DataType & operator* ()
 Returns the current iterator value. If the map has multiple components, this will return the first component. To access the other components, use iter(comp) More...
 
DataType & operator() (SetPosition comp_idx=0)
 Returns the iterator's value at the specified component. Returns the first component if comp_idx is not specified. More...
 
const DataType & operator[] (PositionType n) const
 Returns the first component value after n increments. More...
 
DataType & operator[] (PositionType n)
 
PositionType numComp () const
 Returns the number of components per element in the Map. More...
 
Iterator advance and distance operators
MapIteratoroperator++ ()
 Pre-increment operator. More...
 
MapIterator operator++ (int)
 Post-increment operator. More...
 
MapIteratoroperator-- ()
 Pre-decrement operator. More...
 
MapIterator operator-- (int)
 Post-decrement operator. More...
 
MapIteratoroperator+= (SetPosition n)
 Addition-assignment operator. More...
 
MapIteratoroperator-= (SetPosition n)
 Subtraction-assignment operator. More...
 

Protected Member Functions

void advance (PositionType n)
 

Protected Attributes

Map *const m_mapPtr
 
SetPosition m_pos
 

Detailed Description

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
class axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator

An iterator type for a map. Each increment operation advances the iterator to the next set element. To access the jth component values of the iterator's current element, use iter(j).

Warning
Note the difference between the subscript operator ( iter[off] ) and the parenthesis operator ( iter(j) ).
iter[off] returns the value of the first component of the element at offset off from the currently pointed to element.
And iter(j) returns the value of the jth component of the currently pointed to element (where 0 <= j < numComp()).
For example: iter[off] is the same as (iter+off)(0)

Member Typedef Documentation

◆ iterator_category

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::iterator_category = std::random_access_iterator_tag

◆ value_type

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::value_type = DataType

◆ difference_type

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::difference_type = SetPosition

◆ IterBase

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::IterBase = IteratorBase<MapIterator, SetPosition>

◆ iter

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::iter = MapIterator

◆ PositionType

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
using axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::PositionType = SetPosition

Constructor & Destructor Documentation

◆ MapIterator()

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::MapIterator ( PositionType  pos,
Map oMap 
)
inline

Member Function Documentation

◆ operator*()

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
DataType& axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::operator* ( )
inline

Returns the current iterator value. If the map has multiple components, this will return the first component. To access the other components, use iter(comp)

◆ operator()()

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
DataType& axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::operator() ( SetPosition  comp_idx = 0)
inline

Returns the iterator's value at the specified component. Returns the first component if comp_idx is not specified.

Parameters
comp_idx(Optional) Zero-based index of the component.

◆ operator[]() [1/2]

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
const DataType& axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::operator[] ( PositionType  n) const
inline

Returns the first component value after n increments.

References axom::slam::operator+().

◆ operator[]() [2/2]

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
DataType& axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::operator[] ( PositionType  n)
inline

◆ numComp()

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
PositionType axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::numComp ( ) const
inline

Returns the number of components per element in the Map.

◆ advance()

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
void axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::advance ( PositionType  n)
inlineprotected

Implementation of advance() as required by IteratorBase

◆ operator++() [1/2]

MapIterator & axom::slam::IteratorBase< MapIterator , SetPosition >::operator++ ( )
inlineinherited

Pre-increment operator.

◆ operator++() [2/2]

MapIterator axom::slam::IteratorBase< MapIterator , SetPosition >::operator++ ( int  )
inlineinherited

Post-increment operator.

◆ operator--() [1/2]

MapIterator & axom::slam::IteratorBase< MapIterator , SetPosition >::operator-- ( )
inlineinherited

Pre-decrement operator.

◆ operator--() [2/2]

MapIterator axom::slam::IteratorBase< MapIterator , SetPosition >::operator-- ( int  )
inlineinherited

Post-decrement operator.

◆ operator+=()

MapIterator & axom::slam::IteratorBase< MapIterator , SetPosition >::operator+= ( SetPosition  n)
inlineinherited

Addition-assignment operator.

◆ operator-=()

MapIterator & axom::slam::IteratorBase< MapIterator , SetPosition >::operator-= ( SetPosition  n)
inlineinherited

Subtraction-assignment operator.

Member Data Documentation

◆ m_mapPtr

template<typename SetType, typename DataType, typename StridePolicy = policies::StrideOne<typename SetType::PositionType>>
Map* const axom::slam::Map< SetType, DataType, StridePolicy >::MapIterator::m_mapPtr
protected

◆ m_pos


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