Public Member Functions | Private Attributes | List of all members
gnsstk::NDFUniqIterator< T > Class Template Reference

Detailed Description

template<typename T>
class gnsstk::NDFUniqIterator< T >

This class provides a non-const iterator for iterating over unique elements of a NavDataFactoryMap. This is done by wrapping a standard iterator, keeping track of the pointer values when this iterator is dereferenced, and skipping over iterators that have been dereferenced already. It can be used via:

for (auto& i : NDFUniqIterator<NavDataFactoryMap>(factories))
{
std::cerr << " expecting to be unique: " << i.second << std::endl;
}

Definition at line 60 of file NDFUniqIterator.hpp.

#include <NDFUniqIterator.hpp>

Public Member Functions

NDFUniqIterator begin ()
 
NDFUniqIterator end ()
 
 NDFUniqIterator ()
 
 NDFUniqIterator (std::shared_ptr< T > omap)
 
 NDFUniqIterator (std::shared_ptr< T > omap, typename T::iterator i)
 
 NDFUniqIterator (T &omap)
 
 NDFUniqIterator (T &omap, typename T::iterator i)
 
bool operator!= (const NDFUniqIterator &i)
 
T::value_type & operator* ()
 
NDFUniqIteratoroperator++ ()
 

Private Attributes

T * map
 Original map. More...
 
T::iterator nuit
 non-unique iterator. More...
 
std::set< typename T::mapped_type::element_type * > uniques
 Pointers already encountered. This assumes a map to a shared_ptr. More...
 

Constructor & Destructor Documentation

◆ NDFUniqIterator() [1/5]

template<typename T >
gnsstk::NDFUniqIterator< T >::NDFUniqIterator ( )
inline

Definition at line 63 of file NDFUniqIterator.hpp.

◆ NDFUniqIterator() [2/5]

template<typename T >
gnsstk::NDFUniqIterator< T >::NDFUniqIterator ( T &  omap)
inline

Definition at line 66 of file NDFUniqIterator.hpp.

◆ NDFUniqIterator() [3/5]

template<typename T >
gnsstk::NDFUniqIterator< T >::NDFUniqIterator ( T &  omap,
typename T::iterator  i 
)
inline

Definition at line 69 of file NDFUniqIterator.hpp.

◆ NDFUniqIterator() [4/5]

template<typename T >
gnsstk::NDFUniqIterator< T >::NDFUniqIterator ( std::shared_ptr< T >  omap)
inline

Definition at line 72 of file NDFUniqIterator.hpp.

◆ NDFUniqIterator() [5/5]

template<typename T >
gnsstk::NDFUniqIterator< T >::NDFUniqIterator ( std::shared_ptr< T >  omap,
typename T::iterator  i 
)
inline

Definition at line 75 of file NDFUniqIterator.hpp.

Member Function Documentation

◆ begin()

template<typename T >
NDFUniqIterator gnsstk::NDFUniqIterator< T >::begin ( )
inline

Definition at line 104 of file NDFUniqIterator.hpp.

◆ end()

template<typename T >
NDFUniqIterator gnsstk::NDFUniqIterator< T >::end ( )
inline

Definition at line 106 of file NDFUniqIterator.hpp.

◆ operator!=()

template<typename T >
bool gnsstk::NDFUniqIterator< T >::operator!= ( const NDFUniqIterator< T > &  i)
inline

Definition at line 108 of file NDFUniqIterator.hpp.

◆ operator*()

template<typename T >
T::value_type& gnsstk::NDFUniqIterator< T >::operator* ( )
inline

Definition at line 94 of file NDFUniqIterator.hpp.

◆ operator++()

template<typename T >
NDFUniqIterator& gnsstk::NDFUniqIterator< T >::operator++ ( )
inline

Definition at line 78 of file NDFUniqIterator.hpp.

Member Data Documentation

◆ map

template<typename T >
T* gnsstk::NDFUniqIterator< T >::map
private

Original map.

Definition at line 116 of file NDFUniqIterator.hpp.

◆ nuit

template<typename T >
T::iterator gnsstk::NDFUniqIterator< T >::nuit
private

non-unique iterator.

Definition at line 112 of file NDFUniqIterator.hpp.

◆ uniques

template<typename T >
std::set<typename T::mapped_type::element_type*> gnsstk::NDFUniqIterator< T >::uniques
private

Pointers already encountered. This assumes a map to a shared_ptr.

Definition at line 114 of file NDFUniqIterator.hpp.


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


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45