ManaPlus
Public Types | Public Member Functions | Private Attributes | Friends
mse::mstd::vector< _Ty, _A >::iterator Class Reference

#include <msemstdvector.h>

Inheritance diagram for mse::mstd::vector< _Ty, _A >::iterator:
mse::msevector< _Ty, _A >::random_access_iterator_base

Public Types

typedef _MV::ss_iterator_type::iterator_category iterator_category
 
typedef _MV::ss_iterator_type::value_type value_type
 
typedef _MV::ss_iterator_type::difference_type difference_type
 
typedef _MV::difference_type distance_type
 
typedef _MV::ss_iterator_type::pointer pointer
 
typedef _MV::ss_iterator_type::reference reference
 

Public Member Functions

 iterator ()
 
 iterator (const iterator &src_cref)
 
 ~iterator ()
 
const _MV::ss_iterator_typemsevector_ss_iterator_type () const
 
_MV::ss_iterator_typemsevector_ss_iterator_type ()
 
const _MV::ss_iterator_typemvssi () const
 
_MV::ss_iterator_typemvssi ()
 
 operator const_iterator () const
 
void reset ()
 
bool points_to_an_item () const
 
bool points_to_end_marker () const
 
bool points_to_beginning () const
 
bool has_next_item_or_end_marker () const
 
bool has_next () const
 
bool has_previous () const
 
void set_to_beginning ()
 
void set_to_end_marker ()
 
void set_to_next ()
 
void set_to_previous ()
 
iteratoroperator++ ()
 
iterator operator++ (int)
 
iteratoroperator-- ()
 
iterator operator-- (int)
 
void advance (typename _MV::difference_type n)
 
void regress (typename _MV::difference_type n)
 
iteratoroperator+= (difference_type n)
 
iteratoroperator-= (difference_type n)
 
iterator operator+ (difference_type n) const
 
iterator operator- (difference_type n) const
 
_MV::difference_type operator- (const iterator &_Right_cref) const
 
_MV::reference operator* () const
 
_MV::reference item () const
 
_MV::reference previous_item () const
 
_MV::pointer operator-> () const
 
_MV::reference operator[] (typename _MV::difference_type _Off) const
 
bool operator== (const iterator &_Right_cref) const
 
bool operator!= (const iterator &_Right_cref) const
 
bool operator< (const iterator &_Right) const
 
bool operator<= (const iterator &_Right) const
 
bool operator> (const iterator &_Right) const
 
bool operator>= (const iterator &_Right) const
 
void set_to_item_pointer (const iterator &_Right_cref)
 
msev_size_t position () const
 

Private Attributes

std::shared_ptr< _MVm_msevector_shptr
 
_MV::ss_iterator_type m_ss_iterator
 

Friends

class vector< _Ty, _A >
 

Detailed Description

template<class _Ty, class _A = std::allocator<_Ty>>
class mse::mstd::vector< _Ty, _A >::iterator

Definition at line 177 of file msemstdvector.h.

Member Typedef Documentation

◆ difference_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::ss_iterator_type::difference_type mse::mstd::vector< _Ty, _A >::iterator::difference_type

Definition at line 181 of file msemstdvector.h.

◆ distance_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::difference_type mse::mstd::vector< _Ty, _A >::iterator::distance_type

Definition at line 182 of file msemstdvector.h.

◆ iterator_category

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::ss_iterator_type::iterator_category mse::mstd::vector< _Ty, _A >::iterator::iterator_category

Definition at line 179 of file msemstdvector.h.

◆ pointer

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::ss_iterator_type::pointer mse::mstd::vector< _Ty, _A >::iterator::pointer

Definition at line 183 of file msemstdvector.h.

◆ reference

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::ss_iterator_type::reference mse::mstd::vector< _Ty, _A >::iterator::reference

Definition at line 184 of file msemstdvector.h.

◆ value_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::ss_iterator_type::value_type mse::mstd::vector< _Ty, _A >::iterator::value_type

Definition at line 180 of file msemstdvector.h.

Constructor & Destructor Documentation

◆ iterator() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::iterator::iterator ( )
inline

Definition at line 186 of file msemstdvector.h.

186 {}

◆ iterator() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::iterator::iterator ( const iterator src_cref)
inline

Definition at line 187 of file msemstdvector.h.

187  : m_msevector_shptr(src_cref.m_msevector_shptr) {
188  (*this) = src_cref;
189  }
std::shared_ptr< _MV > m_msevector_shptr

◆ ~iterator()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::iterator::~iterator ( )
inline

Definition at line 190 of file msemstdvector.h.

190 {}

Member Function Documentation

◆ advance()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::advance ( typename _MV::difference_type  n)
inline

◆ has_next()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::has_next ( ) const
inline

◆ has_next_item_or_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::has_next_item_or_end_marker ( ) const
inline

◆ has_previous()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::has_previous ( ) const
inline

◆ item()

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::iterator::item ( ) const
inline

Definition at line 229 of file msemstdvector.h.

229 { return operator*(); }
_MV::reference operator*() const

References mse::mstd::vector< _Ty, _A >::iterator::operator*().

◆ msevector_ss_iterator_type() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::ss_iterator_type& mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type ( )
inline

Definition at line 192 of file msemstdvector.h.

192 { return m_ss_iterator; }
_MV::ss_iterator_type m_ss_iterator

References mse::mstd::vector< _Ty, _A >::iterator::m_ss_iterator.

◆ msevector_ss_iterator_type() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const _MV::ss_iterator_type& mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type ( ) const
inline

Definition at line 191 of file msemstdvector.h.

191 { return m_ss_iterator; }

References mse::mstd::vector< _Ty, _A >::iterator::m_ss_iterator.

Referenced by mse::mstd::vector< _Ty, _A >::iterator::advance(), mse::mstd::vector< _Ty, _A >::emplace(), mse::mstd::vector< _Ty, _A >::erase(), mse::mstd::vector< _Ty, _A >::iterator::has_next(), mse::mstd::vector< _Ty, _A >::iterator::has_next_item_or_end_marker(), mse::mstd::vector< _Ty, _A >::iterator::has_previous(), mse::mstd::vector< _Ty, _A >::insert_before(), mse::mstd::vector< _Ty, _A >::iterator::mvssi(), mse::mstd::vector< _Ty, _A >::iterator::operator const_iterator(), mse::mstd::vector< _Ty, _A >::iterator::operator*(), mse::mstd::vector< _Ty, _A >::iterator::operator++(), mse::mstd::vector< _Ty, _A >::iterator::operator+=(), mse::mstd::vector< _Ty, _A >::iterator::operator-(), mse::mstd::vector< _Ty, _A >::iterator::operator--(), mse::mstd::vector< _Ty, _A >::iterator::operator-=(), mse::mstd::vector< _Ty, _A >::iterator::operator->(), mse::mstd::vector< _Ty, _A >::iterator::operator<(), mse::mstd::vector< _Ty, _A >::iterator::operator<=(), mse::mstd::vector< _Ty, _A >::iterator::operator==(), mse::mstd::vector< _Ty, _A >::iterator::operator>(), mse::mstd::vector< _Ty, _A >::iterator::operator>=(), mse::mstd::vector< _Ty, _A >::iterator::points_to_an_item(), mse::mstd::vector< _Ty, _A >::iterator::points_to_beginning(), mse::mstd::vector< _Ty, _A >::iterator::points_to_end_marker(), mse::mstd::vector< _Ty, _A >::iterator::position(), mse::mstd::vector< _Ty, _A >::iterator::previous_item(), mse::mstd::vector< _Ty, _A >::iterator::regress(), mse::mstd::vector< _Ty, _A >::iterator::reset(), mse::mstd::vector< _Ty, _A >::iterator::set_to_beginning(), mse::mstd::vector< _Ty, _A >::iterator::set_to_end_marker(), mse::mstd::vector< _Ty, _A >::iterator::set_to_item_pointer(), mse::mstd::vector< _Ty, _A >::iterator::set_to_next(), and mse::mstd::vector< _Ty, _A >::iterator::set_to_previous().

◆ mvssi() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::ss_iterator_type& mse::mstd::vector< _Ty, _A >::iterator::mvssi ( )
inline

◆ mvssi() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const _MV::ss_iterator_type& mse::mstd::vector< _Ty, _A >::iterator::mvssi ( ) const
inline

◆ operator const_iterator()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::iterator::operator const_iterator ( ) const
inline

◆ operator!=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator!= ( const iterator _Right_cref) const
inline

Definition at line 234 of file msemstdvector.h.

234 { return (!(_Right_cref == (*this))); }

◆ operator*()

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::iterator::operator* ( ) const
inline

◆ operator+()

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::iterator::operator+ ( difference_type  n) const
inline

Definition at line 225 of file msemstdvector.h.

225 { auto retval = (*this); retval += n; return retval; }

◆ operator++() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator& mse::mstd::vector< _Ty, _A >::iterator::operator++ ( )
inline

Definition at line 217 of file msemstdvector.h.

217 { msevector_ss_iterator_type().operator ++(); return (*this); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator++() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::iterator::operator++ ( int  )
inline

Definition at line 218 of file msemstdvector.h.

218 { iterator _Tmp = *this; ++*this; return (_Tmp); }

◆ operator+=()

template<class _Ty , class _A = std::allocator<_Ty>>
iterator& mse::mstd::vector< _Ty, _A >::iterator::operator+= ( difference_type  n)
inline

Definition at line 223 of file msemstdvector.h.

223 { msevector_ss_iterator_type().operator +=(n); return (*this); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator-() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::difference_type mse::mstd::vector< _Ty, _A >::iterator::operator- ( const iterator _Right_cref) const
inline

Definition at line 227 of file msemstdvector.h.

227 { return msevector_ss_iterator_type() - (_Right_cref.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator-() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::iterator::operator- ( difference_type  n) const
inline

Definition at line 226 of file msemstdvector.h.

226 { return ((*this) + (-n)); }

◆ operator--() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator& mse::mstd::vector< _Ty, _A >::iterator::operator-- ( )
inline

Definition at line 219 of file msemstdvector.h.

219 { msevector_ss_iterator_type().operator --(); return (*this); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator--() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::iterator::operator-- ( int  )
inline

Definition at line 220 of file msemstdvector.h.

220 { iterator _Tmp = *this; --*this; return (_Tmp); }

◆ operator-=()

template<class _Ty , class _A = std::allocator<_Ty>>
iterator& mse::mstd::vector< _Ty, _A >::iterator::operator-= ( difference_type  n)
inline

Definition at line 224 of file msemstdvector.h.

224 { msevector_ss_iterator_type().operator -=(n); return (*this); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator->()

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::pointer mse::mstd::vector< _Ty, _A >::iterator::operator-> ( ) const
inline

Definition at line 231 of file msemstdvector.h.

231 { return msevector_ss_iterator_type().operator->(); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator<()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator< ( const iterator _Right) const
inline

Definition at line 235 of file msemstdvector.h.

235 { return (msevector_ss_iterator_type() < _Right.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator<=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator<= ( const iterator _Right) const
inline

Definition at line 236 of file msemstdvector.h.

236 { return (msevector_ss_iterator_type() <= _Right.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator==()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator== ( const iterator _Right_cref) const
inline

Definition at line 233 of file msemstdvector.h.

233 { return msevector_ss_iterator_type().operator==(_Right_cref.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator>()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator> ( const iterator _Right) const
inline

Definition at line 237 of file msemstdvector.h.

237 { return (msevector_ss_iterator_type() > _Right.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator>=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::operator>= ( const iterator _Right) const
inline

Definition at line 238 of file msemstdvector.h.

238 { return (msevector_ss_iterator_type() >= _Right.msevector_ss_iterator_type()); }

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ operator[]()

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::iterator::operator[] ( typename _MV::difference_type  _Off) const
inline

Definition at line 232 of file msemstdvector.h.

232 { return (*(*this + _Off)); }

◆ points_to_an_item()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::points_to_an_item ( ) const
inline

◆ points_to_beginning()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::points_to_beginning ( ) const
inline

◆ points_to_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::iterator::points_to_end_marker ( ) const
inline

◆ position()

template<class _Ty , class _A = std::allocator<_Ty>>
msev_size_t mse::mstd::vector< _Ty, _A >::iterator::position ( ) const
inline

◆ previous_item()

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::iterator::previous_item ( ) const
inline

◆ regress()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::regress ( typename _MV::difference_type  n)
inline

◆ reset()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::reset ( )
inline

◆ set_to_beginning()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::set_to_beginning ( )
inline

◆ set_to_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::set_to_end_marker ( )
inline

◆ set_to_item_pointer()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::set_to_item_pointer ( const iterator _Right_cref)
inline

Definition at line 239 of file msemstdvector.h.

239 { msevector_ss_iterator_type().set_to_item_pointer(_Right_cref.msevector_ss_iterator_type()); }
void set_to_item_pointer(const ss_iterator_type &_Right_cref)

References mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type(), and mse::msevector< _Ty, _A >::ss_iterator_type::set_to_item_pointer().

◆ set_to_next()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::set_to_next ( )
inline

◆ set_to_previous()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::iterator::set_to_previous ( )
inline

Friends And Related Function Documentation

◆ vector< _Ty, _A >

template<class _Ty , class _A = std::allocator<_Ty>>
friend class vector< _Ty, _A >
friend

Definition at line 244 of file msemstdvector.h.

Field Documentation

◆ m_msevector_shptr

template<class _Ty , class _A = std::allocator<_Ty>>
std::shared_ptr<_MV> mse::mstd::vector< _Ty, _A >::iterator::m_msevector_shptr
private

◆ m_ss_iterator

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::ss_iterator_type mse::mstd::vector< _Ty, _A >::iterator::m_ss_iterator
private

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