BitMagic-C++
Public Types | Public Member Functions | Friends
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
  More...
 
bool operator!= (const const_iterator &it) const BMNOEXCEPT
  More...
 
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) More...
 
const_iteratoroperator++ () BMNOEXCEPT
 Advance to the next available value. More...
 
const_iteratoroperator++ (int)
 Advance to the next available value. More...
 
value_type value () const
 Get current position (value) More...
 
bool is_null () const BMNOEXCEPT
 Get NULL status. More...
 
bool valid () const BMNOEXCEPT
 Returns true if iterator is at a valid position. More...
 
void invalidate () BMNOEXCEPT
 Invalidate current iterator. More...
 
size_type pos () const BMNOEXCEPT
 Current position (index) in the vector. More...
 
void go_to (size_type pos) BMNOEXCEPT
 re-position to a specified position More...
 
bool advance () BMNOEXCEPT
 advance iterator forward by one More...
 
void skip_zero_values () BMNOEXCEPT
  More...
 

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 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 2110 of file bmsparsevec_compr.h.

References bm::id_max.

Referenced by bm::rsc_sparse_vector< Val, SV >::const_iterator::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 2101 of file bmsparsevec_compr.h.

References bm::id_max.

◆ 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 bm::id_max.

◆ is_null()

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

Get NULL status.

Definition at line 2182 of file bmsparsevec_compr.h.

◆ operator!=()

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

◆ 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 bm::rsc_sparse_vector< Val, SV >::const_iterator::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 bm::rsc_sparse_vector< Val, SV >::const_iterator::advance().

◆ 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 bm::rsc_sparse_vector< Val, SV >::const_iterator::advance().

◆ operator==()

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

◆ 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.

◆ skip_zero_values()

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

Definition at line 2154 of file bmsparsevec_compr.h.

References bm::id_max.

◆ 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 bm::id_max.

◆ value()

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

Get current position (value)

Definition at line 2133 of file bmsparsevec_compr.h.

References BM_ASSERT.

Referenced by bm::rsc_sparse_vector< Val, SV >::const_iterator::operator*().


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