Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor > Class Template Reference

DataTable column iterator data type class. More...

#include <column_iterator.h>

Public Types

using value_type = typename ValueAccessor::ValueType
 
using difference_type = std::size_t
 
using reference = value_type &
 
using iterator_category = std::random_access_iterator_tag
 

Public Member Functions

 DataTableColumnIterator ()
 Initialise a new instance of the DataTableColumnIterator{ColumnType, ValueAccessor} class. More...
 
 DataTableColumnIterator (const ColumnType &column, std::size_t index=0)
 Initialise a new instance of the DataTableColumnIterator{ColumnType, ValueAccessor} class. More...
 
std::size_t index () const
 Gets the current iterator index. More...
 
value_type operator* () const
 Gets the current iterator value. More...
 
DataTableColumnIteratoroperator-- ()
 
DataTableColumnIteratoroperator++ ()
 
DataTableColumnIterator operator++ (int)
 
DataTableColumnIterator operator-- (int)
 
difference_type operator- (const DataTableColumnIterator &other) const
 
DataTableColumnIterator operator+ (difference_type n) const
 
DataTableColumnIterator operator- (difference_type n) const
 
DataTableColumnIteratoroperator+= (difference_type n)
 
DataTableColumnIteratoroperator-= (difference_type n)
 
bool operator== (const DataTableColumnIterator &other) const
 
bool operator!= (const DataTableColumnIterator &other) const
 
bool operator< (const DataTableColumnIterator &other) const
 
bool operator> (const DataTableColumnIterator &other) const
 
bool operator<= (const DataTableColumnIterator &other) const
 
bool operator>= (const DataTableColumnIterator &other) const
 

Friends

DataTableColumnIterator operator+ (difference_type diff, const DataTableColumnIterator &other)
 
DataTableColumnIterator operator- (difference_type diff, const DataTableColumnIterator &other)
 

Detailed Description

template<typename ColumnType, typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
class hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >

DataTable column iterator data type class.

Template Parameters
ColumnTypeColumn type
ValueAccessorColumn value accessor type

Member Typedef Documentation

◆ difference_type

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
using hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::difference_type = std::size_t

◆ iterator_category

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
using hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::iterator_category = std::random_access_iterator_tag

◆ reference

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
using hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::reference = value_type &

◆ value_type

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
using hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::value_type = typename ValueAccessor::ValueType

Constructor & Destructor Documentation

◆ DataTableColumnIterator() [1/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::DataTableColumnIterator ( )
inline

Initialise a new instance of the DataTableColumnIterator{ColumnType, ValueAccessor} class.

Some algorithms need to default-construct an iterator.

Here is the caller graph for this function:

◆ DataTableColumnIterator() [2/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::DataTableColumnIterator ( const ColumnType &  column,
std::size_t  index = 0 
)
inlineexplicit

Initialise a new instance of the DataTableColumnIterator{ColumnType, ValueAccessor} class.

Parameters
columnThe column instance to iterate
indexCurrent index

Member Function Documentation

◆ index()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
std::size_t hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::index ( ) const
inline

Gets the current iterator index.

Returns
Current iterator index

◆ operator!=()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator!= ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator*()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
value_type hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator* ( ) const
inline

Gets the current iterator value.

Returns
Iterator value access

◆ operator+()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator+ ( difference_type  n) const
inline
Here is the call graph for this function:

◆ operator++() [1/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator& hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator++ ( int  )
inline

◆ operator+=()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator& hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator+= ( difference_type  n)
inline

◆ operator-() [1/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
difference_type hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator- ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator-() [2/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator- ( difference_type  n) const
inline
Here is the call graph for this function:

◆ operator--() [1/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator& hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator-- ( int  )
inline

◆ operator-=()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator& hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator-= ( difference_type  n)
inline

◆ operator<()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator< ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator<=()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator<= ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator==()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator== ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator>()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator> ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

◆ operator>=()

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
bool hgps::core::DataTableColumnIterator< ColumnType, ValueAccessor >::operator>= ( const DataTableColumnIterator< ColumnType, ValueAccessor > &  other) const
inline

Friends And Related Function Documentation

◆ operator+

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator operator+ ( difference_type  diff,
const DataTableColumnIterator< ColumnType, ValueAccessor > &  other 
)
friend

◆ operator-

template<typename ColumnType , typename ValueAccessor = detail::DefaultValueAccessor<ColumnType>>
DataTableColumnIterator operator- ( difference_type  diff,
const DataTableColumnIterator< ColumnType, ValueAccessor > &  other 
)
friend

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