BitMagic-C++
bm::rsc_sparse_vector< Val, SV >::const_iterator Class Reference

Const iterator to traverse the rsc sparse vector. More...

#include <bmsparsevec_compr.h>

Public Types

typedef std::input_iterator_tag iterator_category
typedef rsc_sparse_vector< Val, SV > rsc_sparse_vector_type
typedef rsc_sparse_vector_typersc_sparse_vector_type_ptr
typedef rsc_sparse_vector_type::value_type value_type
typedef rsc_sparse_vector_type::size_type size_type
typedef rsc_sparse_vector_type::bvector_type bvector_type
typedef bvector_type::allocator_type allocator_type
typedef bvector_type::allocator_type::allocator_pool_type allocator_pool_type
typedef bm::byte_buffer< allocator_typebuffer_type
typedef unsigned difference_type
typedef unsigned * pointer
typedef value_typereference

Public Member Functions

 const_iterator () BMNOEXCEPT
 const_iterator (const rsc_sparse_vector_type *csv) BMNOEXCEPT
 const_iterator (const rsc_sparse_vector_type *csv, size_type pos) BMNOEXCEPT
 const_iterator (const const_iterator &it) BMNOEXCEPT
bool operator== (const const_iterator &it) const BMNOEXCEPT
bool operator!= (const const_iterator &it) const BMNOEXCEPT
bool operator< (const const_iterator &it) const BMNOEXCEPT
bool operator<= (const const_iterator &it) const BMNOEXCEPT
bool operator> (const const_iterator &it) const BMNOEXCEPT
bool operator>= (const const_iterator &it) const BMNOEXCEPT
value_type operator* () const
 Get current position (value).
const_iteratoroperator++ () BMNOEXCEPT
 Advance to the next available value.
const_iteratoroperator++ (int)
 Advance to the next available value.
value_type value () const
 Get current position (value).
bool is_null () const BMNOEXCEPT
 Get NULL status.
bool valid () const BMNOEXCEPT
 Returns true if iterator is at a valid position.
void invalidate () BMNOEXCEPT
 Invalidate current iterator.
size_type pos () const BMNOEXCEPT
 Current position (index) in the vector.
void go_to (size_type pos) BMNOEXCEPT
 re-position to a specified position
bool advance () BMNOEXCEPT
 advance iterator forward by one
void skip_zero_values () BMNOEXCEPT

Friends

class rsc_sparse_vector

Detailed Description

template<class Val, class SV>
class bm::rsc_sparse_vector< Val, SV >::const_iterator

Const iterator to traverse the rsc sparse vector.

Implementation uses buffer for decoding so, competing changes to the original vector may not match the iterator returned values.

This iterator keeps an operational buffer, memory footprint is not negligable

Definition at line 126 of file bmsparsevec_compr.h.

Member Typedef Documentation

◆ allocator_pool_type

template<class Val, class SV>
typedef bvector_type::allocator_type::allocator_pool_type bm::rsc_sparse_vector< Val, SV >::const_iterator::allocator_pool_type

Definition at line 141 of file bmsparsevec_compr.h.

◆ allocator_type

template<class Val, class SV>
typedef bvector_type::allocator_type bm::rsc_sparse_vector< Val, SV >::const_iterator::allocator_type

Definition at line 139 of file bmsparsevec_compr.h.

◆ buffer_type

template<class Val, class SV>
typedef bm::byte_buffer<allocator_type> bm::rsc_sparse_vector< Val, SV >::const_iterator::buffer_type

Definition at line 142 of file bmsparsevec_compr.h.

◆ bvector_type

template<class Val, class SV>
typedef rsc_sparse_vector_type::bvector_type bm::rsc_sparse_vector< Val, SV >::const_iterator::bvector_type

Definition at line 138 of file bmsparsevec_compr.h.

◆ difference_type

template<class Val, class SV>
typedef unsigned bm::rsc_sparse_vector< Val, SV >::const_iterator::difference_type

Definition at line 144 of file bmsparsevec_compr.h.

◆ iterator_category

template<class Val, class SV>
typedef std::input_iterator_tag bm::rsc_sparse_vector< Val, SV >::const_iterator::iterator_category

Definition at line 132 of file bmsparsevec_compr.h.

◆ pointer

template<class Val, class SV>
typedef unsigned* bm::rsc_sparse_vector< Val, SV >::const_iterator::pointer

Definition at line 145 of file bmsparsevec_compr.h.

◆ reference

template<class Val, class SV>
typedef value_type& bm::rsc_sparse_vector< Val, SV >::const_iterator::reference

Definition at line 146 of file bmsparsevec_compr.h.

◆ rsc_sparse_vector_type

template<class Val, class SV>
typedef rsc_sparse_vector<Val, SV> bm::rsc_sparse_vector< Val, SV >::const_iterator::rsc_sparse_vector_type

Definition at line 134 of file bmsparsevec_compr.h.

◆ rsc_sparse_vector_type_ptr

template<class Val, class SV>
typedef rsc_sparse_vector_type* bm::rsc_sparse_vector< Val, SV >::const_iterator::rsc_sparse_vector_type_ptr

Definition at line 135 of file bmsparsevec_compr.h.

◆ size_type

template<class Val, class SV>
typedef rsc_sparse_vector_type::size_type bm::rsc_sparse_vector< Val, SV >::const_iterator::size_type

Definition at line 137 of file bmsparsevec_compr.h.

◆ value_type

template<class Val, class SV>
typedef rsc_sparse_vector_type::value_type bm::rsc_sparse_vector< Val, SV >::const_iterator::value_type

Definition at line 136 of file bmsparsevec_compr.h.

Constructor & Destructor Documentation

◆ const_iterator() [1/4]

template<class Val, class BV>
bm::rsc_sparse_vector< Val, BV >::const_iterator::const_iterator ( )

◆ const_iterator() [2/4]

template<class Val, class SV>
bm::rsc_sparse_vector< Val, SV >::const_iterator::const_iterator ( const rsc_sparse_vector_type * csv)

References BMNOEXCEPT, and const_iterator().

◆ const_iterator() [3/4]

template<class Val, class SV>
bm::rsc_sparse_vector< Val, SV >::const_iterator::const_iterator ( const rsc_sparse_vector_type * csv,
size_type pos )

References BMNOEXCEPT, const_iterator(), and pos().

◆ const_iterator() [4/4]

template<class Val, class SV>
bm::rsc_sparse_vector< Val, SV >::const_iterator::const_iterator ( const const_iterator & it)

References BMNOEXCEPT, and const_iterator().

Member Function Documentation

◆ advance()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::advance ( )

advance iterator forward by one

Returns
true if it is still valid

Definition at line 2137 of file bmsparsevec_compr.h.

References BMNOEXCEPT, bm::id_max, and invalidate().

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

◆ go_to()

template<class Val, class SV>
void bm::rsc_sparse_vector< Val, SV >::const_iterator::go_to ( size_type pos)

re-position to a specified position

Definition at line 2128 of file bmsparsevec_compr.h.

References BMNOEXCEPT, bm::id_max, and pos().

◆ invalidate()

template<class Val, class SV>
void bm::rsc_sparse_vector< Val, SV >::const_iterator::invalidate ( )
inline

Invalidate current iterator.

Definition at line 189 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and bm::id_max.

Referenced by advance().

◆ is_null()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::is_null ( ) const

Get NULL status.

Definition at line 2209 of file bmsparsevec_compr.h.

References BMNOEXCEPT.

◆ operator!=()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator!= ( const const_iterator & it) const
inline

Definition at line 156 of file bmsparsevec_compr.h.

References BMNOEXCEPT, const_iterator(), and operator==().

◆ operator*()

template<class Val, class SV>
value_type bm::rsc_sparse_vector< Val, SV >::const_iterator::operator* ( ) const
inline

Get current position (value).

Definition at line 168 of file bmsparsevec_compr.h.

References value().

◆ operator++() [1/2]

template<class Val, class SV>
const_iterator & bm::rsc_sparse_vector< Val, SV >::const_iterator::operator++ ( )
inline

Advance to the next available value.

Definition at line 172 of file bmsparsevec_compr.h.

References advance(), BMNOEXCEPT, and const_iterator().

◆ operator++() [2/2]

template<class Val, class SV>
const_iterator & bm::rsc_sparse_vector< Val, SV >::const_iterator::operator++ ( int )
inline

Advance to the next available value.

Definition at line 175 of file bmsparsevec_compr.h.

References advance(), and const_iterator().

◆ operator<()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator< ( const const_iterator & it) const
inline

Definition at line 158 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and const_iterator().

◆ operator<=()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator<= ( const const_iterator & it) const
inline

Definition at line 160 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and const_iterator().

◆ operator==()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator== ( const const_iterator & it) const
inline

Definition at line 154 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and const_iterator().

Referenced by operator!=().

◆ operator>()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator> ( const const_iterator & it) const
inline

Definition at line 162 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and const_iterator().

◆ operator>=()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::operator>= ( const const_iterator & it) const
inline

Definition at line 164 of file bmsparsevec_compr.h.

References BMNOEXCEPT, and const_iterator().

◆ pos()

template<class Val, class SV>
size_type bm::rsc_sparse_vector< Val, SV >::const_iterator::pos ( ) const
inline

Current position (index) in the vector.

Definition at line 192 of file bmsparsevec_compr.h.

References BMNOEXCEPT.

Referenced by const_iterator(), and go_to().

◆ skip_zero_values()

template<class Val, class SV>
void bm::rsc_sparse_vector< Val, SV >::const_iterator::skip_zero_values ( )

Definition at line 2181 of file bmsparsevec_compr.h.

References BMNOEXCEPT, bm::id_max, and value().

◆ valid()

template<class Val, class SV>
bool bm::rsc_sparse_vector< Val, SV >::const_iterator::valid ( ) const
inline

Returns true if iterator is at a valid position.

Definition at line 186 of file bmsparsevec_compr.h.

References BMNOEXCEPT, bm::id_max, and valid().

Referenced by valid(), and value().

◆ value()

template<class Val, class SV>
rsc_sparse_vector< Val, SV >::const_iterator::value_type bm::rsc_sparse_vector< Val, SV >::const_iterator::value ( ) const

Get current position (value).

Definition at line 2160 of file bmsparsevec_compr.h.

References BM_ASSERT, and valid().

Referenced by operator*(), and skip_zero_values().

◆ rsc_sparse_vector

template<class Val, class SV>
friend class rsc_sparse_vector
friend

Definition at line 129 of file bmsparsevec_compr.h.

References rsc_sparse_vector.

Referenced by rsc_sparse_vector.


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